DelVC:谢谢作者的分析,俺搞明白了。正在学习c中。
(发表于2006-2-10 10:37:00)
zkl2001_:第三个问题写错了吧 应该是如果 a.c 中不写include<>,那么编译器是不是会自动把 .h 文件里面的东西跟同名的 .c 文件绑定在一起?还有最后一段意思是不是说如果调用.c文件中的函数,也要首先进行宏替换?知道着给我发邮件zkl2001_@163.com
(发表于2006-2-10 12:17:00)
nbcool:倒~,不同编译器解释不一样,何必牵强。
(发表于2006-2-10 18:03:00)
zyl910:#include只是起倒入文本的作用
很多人被其作用概念想得太复杂了
(发表于2006-2-17 1:32:00)
flyingxu:可以写的更简短点
(发表于2006-2-20 15:50:00)
only4u:我倒是有一个问题想了很久,既然.c文件和.h文件没有联系,那么main中只是include .h文件,他是怎么就调用了.c文件或.cpp文件的函数。
(发表于2006-3-2 11:46:00)
biozardid:我倒是有一个问题想了很久,既然.c文件和.h文件没有联系,那么main中只是include .h文件,预编译后不就成了
//main.c
void foo();
int main(int argc, char *argv[])
{
foo(); //这里的函数调用怎么就会知道调用了a.c里 的函数了?
return 0;
}
他是怎么就调用了.c文件或.cpp文件的函数。
(发表于2006-3-6 14:12:00)
axx1611:to biozardid:
在编译main.c的时候,它自己并不知道foo()是定义在哪个cpp中的,它只知道有个foo()的存在。
而在连接时,连接器会把这个foo()的声明同a.c里的foo()连接起来,所以在程序运行期main.c执行的就是a.c里的foo()
(发表于2006-11-25 12:40:00)
..........................................................................
--------------------next---------------------
阅读(230) | 评论(0) | 转发(0) |