在程序中,我没有提到函数 fullon
的返回类型,但代码仍然运行并打印 output: "7"
。即使我没有提到任何返回类型,它是如何工作的?我在这个网站上搜索过,但找不到任何合适的答案。我还是一个初学者,所以我没有太多的 C 背景。
#include<stdio.h>
fullon(int);
int main()
{
int b;
int x = 5 ;
b = fullon(x);
printf("%d" , b);
}
fullon(int y)
{
return y+2;
}
更新1:
#include<stdio.h>
fullon(float);
int main()
{
float b;
int x = 5 ;
float f = 3.5;
b = fullon(f);
printf("%f" , b);
}
fullon(float y)
{
return y;
}
输出为 3.000000
最佳答案
早在 20 世纪 80 年代,准标准 C(有时称为 K&R C,其中 K&R 指的是 Kernighan 和 Ritchie 的名字,他们创建了该语言并编写了第一本 C 语言手册)允许像这样的函数声明:
noreturntype()
{
//returns something the size of an int
/* do something */
return 456;
}
因此,即使该函数没有返回类型,也允许在给定实现上返回与 int 具有相同字节数的任何内容。 (例如,如果 16 位机器有 16 位整数和 16 位指针,则允许在此类函数中返回 int 或指针。)
创建 C 标准时,保留了这些旧式声明,以便向后兼容现有程序。 (事实上,即使是现代编译器也倾向于接受旧式函数声明和警告)。
关于c - 函数没有返回类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34378395/