两个c文件并将值从文件返回到另一个文件

时间:2014-03-12 18:13:46

标签: c file external cross-compiling

我有两个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?

2 个答案:

答案 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分配内存。没有理由把事情变得如此复杂。