我有两个c文件。2) bbb.c
bbb.c file计算数据文件(data.txt)的行号。
然后,我要将bbb.c中计算的行号包含到aaa.c中。
例如,在aaa.c
#include<stdio.h>
#define ROW "linenumber"
in bbb.c,
#include<stdio.h>
int main()
{
FILE *fp = fopen("bond.txt", "r");
int ch;
int count =0 ;
do
{
ch = fgetc(fp);
if(ch=='n') count++;
}while(ch != EOF);
return count;
}
我想使用从bbb.c计算的值(count)到"#define Row "linenumber"中的linenumber。
我怎么能做到这一点,以及如何编译aaa.c和bbb.c在一起?
如果可能的话,你可以在bbb.c文件中声明变量,在aaa.c文件中使用extern来告诉编译器,它使该文件成为本地文件。
在aaa.c#include <stdio.h>
extern int linenumbers;
int main() {
...
}
bbb.c
int linenumbers;
在bbb.c中必须声明为全局变量,在aaa.c中也必须声明为全局变量。
你想做的需要2次编译。当然,你可以创建一个构建脚本,用bbb.c构建一个项目,运行可执行文件,记住这个数字,解析aaa.c,把这个数字代替ROW,最后重新编译这两个文件——但是为什么呢?
如果你的逻辑需要的数字是在运行时的价值,只是使用ROW在运行时-我想它是史密斯与数组分配,分配内存与malloc。没理由把事情弄得这么复杂。