gpt4 book ai didi

c - 当涉及双返回类型的函数声明时,K&R 是否过时了?

转载 作者:太空宇宙 更新时间:2023-11-04 02:47:51 24 4
gpt4 key购买 nike

关于函数返回 double 的函数减速,K&R 第 2 版是否过时了?

第 71 页指出:

the calling routine must know that atof returns a non-int value. One way to ensure this is to declare atof explicitly in the calling routine.

这是 p.72 上的另一个函数说明了这一点:

/* rudimentary calculator */

main()
{
double sum, atoif (char []);
char line[MAXLINE];
int getline (char line[], int max);

sum = 0;
while (getline (line, MAXLINE) > 0)
printf("\t%g\n", sum += atof(line));
return 0;
}

现在在 c 中是否有必要,或者声明是否应该与其他返回 int 的函数一起放在头文件中?

最佳答案

这本书中有很多东西已经过时了,正如人们所预料的那样。但是,您似乎误解了这是关于什么的。

绝对需要,甚至比几年前更需要调用函数时,编译器需要在调用函数时知道函数原型(prototype)。

对于属于标准 C 库的函数,必须包含相应的头文件。对于不属于标准 C 库的函数,例如您声明的“atoif”,函数内的声明是一种非常糟糕的做法,最好在头文件中声明并包含它,把它和当时一样完全合法。

关于c - 当涉及双返回类型的函数声明时,K&R 是否过时了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25472601/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com