c - 是否可以在不编译的情况下包含 .c 文件中的函数?

标签 c gcc include

我受到非常具体(而且毫无意义......)的文件系统的限制,我无法创建头文件或将现有文件拆分为仅包含函数和执行调用的文件。我只能创建可以执行并具有某种输出的 .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/

相关文章:

javascript - Javascript 扩展和包含中的 Odoo 差异

c - 动态创建线程并传递一个整数

c - send() 什么时候返回 EWOULDBLOCK?

c - get_string() 返回什么?

c - makefile:4: *** 缺少分隔符。停止

c++ - *nix 上的模板方法特化

c - 重新类型转换一个变量,可能吗?

ios - 原子读/写 int 值 w/o 对 int 值本身的额外操作

c++ - cpp 文件 #include 导致错误,@class 不

c++ - 将外部 .asm 文件包含到 C++ 代码中