调用参数数量未定义的 C 函数

标签 c function-call

请注意,此问题不涉及省略号。

考虑以下代码

#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/

相关文章:

c - "warning: control reaches end of non-void function"但实际上该函数被声明为 int 并返回一个 int

c - 记录到屏幕和文件

progressive-web-apps - 如何从我的页面中调用我的 ServiceWorker 上的方法?

C++:代码注入(inject)以调用函数

c - 无法使用 papi.h 运行 PAPI 代码,错误 : cannot open shared object file in GCC

c - NIC 收到的数据包未通过套接字读取

c - 输入一个字母,然后减去字母表

c - 函数调用和汇编

matlab - 当未明确知道输入参数的数量时,使用可变数量的输入参数调用函数

python - django 在 context_processors.py 中调用函数