两个c文件和从一个文件到另一个文件的返回值



我有两个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。没理由把事情弄得这么复杂。

相关内容

  • 没有找到相关文章

最新更新