我刚刚遇到某人的C代码,我很困惑为什么要编译.有两点我不明白.
首先,与实际函数定义相比,函数原型没有参数.其次,函数定义中的参数没有类型.
#include <stdio.h>
int func();
int func(param)
{
return param;
}
int main()
{
int bla = func(10);
printf("%d", bla);
}
Run Code Online (Sandbox Code Playgroud)
为什么这样做?我已经在几个编译器中测试过,它运行正常.
我正在阅读的这本书指出,当你在c中声明一个不接受任何参数的函数,但是你不使用关键字void"函数调用可以传递它想要的任何参数".所以我尝试了这个.
int number();
int main(void)
{
int x =1;
printf("%d",number(x));
}
int number()
{
return x;
}
Run Code Online (Sandbox Code Playgroud)
但它没有编译??? 这是如何运作的?