#include<stdio.h>
int slogan();
int main()
{
slogan(slogan());
return 0;
}
int slogan()
{
printf("onlyme\n");
}
我的疑问是,口号函数在其原型中没有参数列表,那么它如何接受函数调用作为其参数呢?
答案 0 :(得分:8)
在c中,空参数列表并不意味着不带参数的函数。它表示具有未指定数量的参数
的函数声明一个不带参数的函数写:
int func(void);
答案 1 :(得分:6)
因为在C中,
int slogan();
声明一个函数而不说任何关于它的参数。这根本不是原型声明,它是一种旧式K&R声明。参数函数的原型声明是
int slogan(void);
前一种形式的存在是为了在1989年之前的C语言中向后兼容,当时你根本无法在原型中提供参数信息。
答案 2 :(得分:0)
Look at First answer here(and second) 第一个答案将为您提供函数声明的准确解释
第6.11.6节函数声明符(K&amp; R C)
使用带有空括号的函数声明符(不是 prototype-format参数类型声明符)是一个过时的 特征强>