在我在网上看到的所有代码中,程序总是分解成许多较小的文件.对于我在学校的所有项目,我已经得到了一个巨大的C源文件,其中包含我使用的所有结构和函数.
我想要学习的是将程序拆分成较小的文件,这似乎是专业的标准.(顺便说一下,为什么这只是为了方便阅读?)
我四处搜索,我所能找到的信息都是构建库,这不是我想做的事情,我不认为.我希望我能提供更多帮助,但我不完全确定如何实现这一点 - 我只确定我想要的最终产品.
那么,这正是你想要的:将你的代码分成几个库!
让我们举一个例子,你有一个文件:
#include <stdio.h>
int something() {
return 42;
}
int bar() {
return something();
}
void foo(int i) {
printf("do something with %d\n", i);
}
int main() {
foo(bar());
return 0;
}
Run Code Online (Sandbox Code Playgroud)
你可以把它拆分为:
mylib.h:
#ifndef __MYLIB_H__
#define __MYLIB_H__
#include <stdio.h>
int bar();
void foo();
#endif
Run Code Online (Sandbox Code Playgroud)
注意:上面的预处理器代码称为"guard",用于不运行此头文件两次,因此您可以在多个位置调用相同的include,并且没有编译错误
mylib.c:
#include <mylib.h>
int something() {
return 42;
}
int bar() {
return something();
}
void foo(int i) {
printf("do something with %d\n", i);
}
Run Code Online (Sandbox Code Playgroud)
myprog.c中:
#include <mylib.h>
int main() {
foo(bar());
return 0;
}
Run Code Online (Sandbox Code Playgroud)
编译它你做:
gcc -c mylib.c -I./
gcc -o myprog myprog.c -I./ mylib.o
Run Code Online (Sandbox Code Playgroud)
现在的优势?