我受到非常具体(而且毫无意义......)的文件系统的限制,我无法创建头文件或将现有文件拆分为仅包含函数和执行调用的文件。我只能创建可以执行并具有某种输出的 .c 文件。
很多代码都可以重用,但我不得不将一些函数从一个文件复制到另一个文件。
是否可以通过包含但不编译一个或多个文件或省略包含文件中的某些功能来解决这一问题?也许在混合中添加一些调试可以只编译部分包含文件?
最佳答案
像这样放置共享代码,以便它可以自己编译,同时您可以从其他 .c 文件中包含它而不会得到重复的主要函数:
// shared.c
#ifndef SHARED_C
#define SHARED_C
#if __INCLUDE_LEVEL__ == 0
# include <stdio.h>
# include <stdlib.h>
int main() {
fprintf(stderr, "shared file, not to run!\n");
return EXIT_FAILURE;
}
#endif
int shared_func() { return 1; }
#endif
并从其他文件中使用它
#include "shared.c"
int x = shared_func();
关于c - 是否可以在不编译的情况下包含 .c 文件中的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16492302/