例如:
file1.c 具有:
static const struct
{
int a;
int b;
int c;
} mystruct = { 1, 2, 3};
Run Code Online (Sandbox Code Playgroud)
file2.c 具有:
#include <stdio.h>
#include "file1.c"
Run Code Online (Sandbox Code Playgroud)
等等.
这样可以吗?
这样可以吗?请告诉我.谢谢.
这在技术上会起作用,但我不推荐它.相反,我建议将你的声明放在头文件中,然后在你的project/makefile/etc中包含两个.c文件.
这将是一种"标准"工作方式,这反过来又使您的项目更易于维护.
是的,只要你有良好的动机就可以。例如,它可以帮助您避免源代码重复(即使您仍然会在二进制级别获得重复),或者它可以允许您使用机器生成的代码片段(例如由单独的编译器生成的解析器) )。您甚至可能在某些平台上获得一些性能或占用空间的改进,因为编译器可以选择更优化的指令(例如,在file1.c包含代码的情况下相对的本地调用),如果是单独的翻译单元,则这是不可能的file1.c。
如果你的动机不够好,就应该避免,因为它可能会在一些方面造成麻烦。我想到的一些是:
file1.cfile1.cfile1.c如果不是您在其中定义的所有符号都具有内部链接,则可能会导致链接错误。