以下代码是否可以编译成功
#include <stdio.h>
void test() {
}
int main()
{
test(123);
return 0;
}
可以编译成功。
如果在定义时未声明void参数,可以接受任意参数
如果在定义时声明void参数,则需要严格按照声明进行使用
demo.c: In function ‘main’:
demo.c:6:5: error: too many arguments to function ‘test’
6 | test(123);
| ^~~~
demo.c:2:6: note: declared here
2 | void test(void) {
| ^~~~
未声明main函数的返回值,是否可以编译成功
#include <stdio.h>
void test() {
}
main()
{
test(123);
return 0;
}
可以编译成功。如果删除返回值,默认返回值是int