我有两个c文件。 1)aaa.c 2)bbb.c
bbb.c文件计算数据文件的行号(data.txt)。
然后,我想将bbb.c中计算的行号包含在aaa.c中。
例如,在aaa.c中
#include<stdio.h>
#define ROW "linenumber"
在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计算的值(计数)到“#define Row”亚麻布“”中的亚麻布。
我该怎么做以及如何编译aaa.c和bbb.c toghether?
答案 0 :(得分:1)
如果可能的话,你可以在bbb.c中声明变量,并在aaa.c文件中使用extern告诉编译器它会使该文件本地化。
在aaa.c
#include <stdio.h>
extern int linenumbers;
int main() {
...
}
bbb.c
int linenumbers;
变量必须在bbb.c中声明为全局,而aaa.c中的extern也应该是全局变量。
答案 1 :(得分:0)
您想要做的事情需要2次编译。你当然可以创建一个构建脚本,它将用bbb.c构建一个项目,运行可执行文件,记住数字,解析aaa.c并把这个数字代替ROW,最后重新编译这两个文件 - 但是为了什么?
如果您的逻辑要求数字在运行时进行估值,那么只需在运行时使用ROW - 我认为它与数组的分配是一致的,用malloc分配内存。没有理由把事情变得如此复杂。