请注意,此问题不涉及省略号。
考虑以下代码
#include <stdio.h>
void foo() {
printf("I AM AWESOME\n");
}
main(void) {
foo(1,2,3);
foo();
return 0;
}
该程序运行完美并提供了输出。 但是,在“main”的情况下,无论
主要(无效)
或
main()
当,定义foo为
foo(void)
给出一个错误——“参数太多”。
如果两者都是函数,它们不应该也遵循相同的规则吗?
最佳答案
当您声明一个不带参数的函数时,这意味着禁用类型检查并使用 K&R 调用约定。这并不意味着该函数没有参数。
在 ANSI 中,当你想显式声明该函数没有参数时,你需要将其声明为 fun(void)。
关于调用参数数量未定义的 C 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55675979/