C语言中函数声明问题
答案:3 悬赏:60 手机版
解决时间 2021-03-22 13:59
- 提问者网友:却不属于对方
- 2021-03-22 07:07
C语言中函数声明问题
最佳答案
- 五星知识达人网友:人類模型
- 2021-03-22 07:53
第一,如果你没有看错就是你的书错了,只有int和char类型的函数不必声明
第二,C中可以不声明函数的条件是3个
1就是上面我说的
2.是被调函数定义在主调函数之前,可不必声明
3函数的外部已声明过了,个个主调函数中不必声明
对于第二点,很好解释,因为声明的目的在于告诉编译器有这么个自定义函数,返回类型是什么,如果被调函数定义在主调函数之前,那么编译器自然就知道了这个函数
你把f2和f1换下位置并去掉声明就明白了
再说一句,写函数声明是编写程序的良好习惯
请注意这是C程序,C官方声明标准编译器是Turboc 2。0
不要把C++的概念强加给C
我不是说VC++6不好,而是说既然是在学C,就要用标准的C编译器,只有标准C编译器才能正确的学习C的基础理论
第二,C中可以不声明函数的条件是3个
1就是上面我说的
2.是被调函数定义在主调函数之前,可不必声明
3函数的外部已声明过了,个个主调函数中不必声明
对于第二点,很好解释,因为声明的目的在于告诉编译器有这么个自定义函数,返回类型是什么,如果被调函数定义在主调函数之前,那么编译器自然就知道了这个函数
你把f2和f1换下位置并去掉声明就明白了
再说一句,写函数声明是编写程序的良好习惯
请注意这是C程序,C官方声明标准编译器是Turboc 2。0
不要把C++的概念强加给C
我不是说VC++6不好,而是说既然是在学C,就要用标准的C编译器,只有标准C编译器才能正确的学习C的基础理论
全部回答
- 1楼网友:一叶十三刺
- 2021-03-22 09:11
这同你的编译器有关。
我用 MS VC++ 编译器, 用 cl 命令编译链接, 把你的代码去掉long f2(int), 编译后执行正确无误。
你可以把
f1(int p) { 。。。}
和
f2(int q) {。。。}
次序对调一下,这时省去原型声明long f2(int),也许就可以了。
因为f1要用到f2,先声明f2,后声明f1. 你的编译器较笨。书上是对的。
我用 MS VC++ 编译器, 用 cl 命令编译链接, 把你的代码去掉long f2(int), 编译后执行正确无误。
你可以把
f1(int p) { 。。。}
和
f2(int q) {。。。}
次序对调一下,这时省去原型声明long f2(int),也许就可以了。
因为f1要用到f2,先声明f2,后声明f1. 你的编译器较笨。书上是对的。
- 2楼网友:冷風如刀
- 2021-03-22 08:38
用visual C++6.0很好的!
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯