【发布时间】:2011-08-02 06:10:17
【问题描述】:
假设我们有 2 个源文件:
主.c:#include <stdio.h>
#define i 2
int main(){
printf("sum(%d) = %d", i, sum(i));
return 0;
}
总和.c:
int sum(int i){
int a, sum;
for(a = 0, sum = 0; a < i; a++)
sum += a;
return sum;
}
如果我编译它们使用
gcc main.c sum.c
我会得到一个工作的可执行文件。我很困惑,因为我认为这不应该工作,因为sum 函数出现在main 之后> 没有sum 函数的提示,就像它在main 之前的声明一样。
这是因为编译步骤之一(如链接编辑)吗?另外,这是一种不好的做法(我应该使用带有sum 声明的头文件吗)?
【问题讨论】:
-
#define
这是什么..???应该有#include
标签: c gcc compilation