“要保证每个函数的原型出现在调用之间” 是不是有错别字啊,应该改为:“要保证每个函数的原型出现在调用之后”吧!
谢谢指出!已改正,应该是“调用之前”
void函数没有返回值,它仅能被当作一个语句,不能被当作表达式。 任何表达式都应该能被计算出一个值。
上述引自Behrouz A.Forouzan与Richard F.Gilberg的《Computer Science:A Structured Programming Approach Using C》第三版
如果你的修改意见引自C99,我会认真考虑修改的。
宋老师您好!
为什么“例 3.2. 最简单的自定义函数”当中自定义函数
void newline(void)
{
printf("\n");
}
与
void threeline(void)”
{
newline();
newline();
newline();
}
调换位置后会报错呢?
在传统C中不使用函数原型。 而在C99中,旧式的非原型形式被当成是过时的。 所有现代的C代码都应该使用原型来编写。 摘自 C:A Reference Manual (Fifth Edition)
为什么书中的代码除了这一节的一个示例程序外都不按C99的要求使用函数原型呢?是为了兼容非标准编译器或者过老编译器增加程序可移植性吗?
上面的话属于胡说八道,敬请无视。
请教一个问题: 我写return 4; 或者return 100; ubuntu 9.04终端都没有您的提示,是不是编译环境哪里不一样吗?
另外,建议threeline()改成threelineS()
to Laciq: 你对函数原型的理解有偏差,本书的所有代码都使用了函数原型,符合C99标准。并不是只有声明的才叫函数原型,在定义的同时声明的也叫函数原型。
to 周笑镭: 虽然只加一个字母,不过符合我的喜好,我决定采纳你的建议。谢谢!
如果您有建设性意见,哪怕只是纠正一个错别字,也请不吝赐教,您留下的姓名和email将会出现在本书前言的致谢中。再次感谢您的宝贵意见!