Chinaunix首页 | 论坛 | 博客
  • 博客访问: 578410
  • 博文数量: 752
  • 博客积分: 40000
  • 博客等级: 大将
  • 技术积分: 5005
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-13 14:47
文章分类

全部博文(752)

文章存档

2011年(1)

2008年(751)

我的朋友

分类:

2008-10-13 16:44:49

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---------------------

阅读(220) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~