C语言多文件编程

本文识别码为: 23B22-B:3

C语言多文件编程 All in One!

动态库和共享库

C语言中想要用库有两种形式,一种是动态库,一种是共享库。动态库常以.so(shared object)为后缀名,静态库常以.a(archive)为后缀名。 一句话说明: 动态库是在编译后动态链接的,不占用可执行文件的空间,而且其代码可以随时更改而不用改源文件。 静态库是编译的时候要打包到可执行文件中的,所以其可能会导致程序体积增大。 但是,在用动态库的时候也需要在外部打包上。

include是什么

#include 其实就是将那个头文件中的内容复制到本文件中。

为什么需要include保护

有时候你include的那个文件中也引用了一个很常用的库,先暂且叫它foo.h但是你在你的main.c中也要用到这个foo.h, 那么编译之后实际上就会#include两次这个foo.h,那就得用include保护了。现在一般有两种方式来include保护。

#ifndef方式

// in xxx.h
#ifndef XXX_H
#define XXX_H
// your code here
#endif

这种方式不言而喻,一目了然,include一次过后就不会执行代码了。

#pragma once方式

这种方式比较简单,在文件开头加上#pragma once就行。注意,不是所有编译器都支持,但是现在主流编译器都支持,比较方便,所以现在一般就可以用它了。

makefile


Last modified on 2023-02-22