在函数内调用相同的函数

时间:2014-05-24 12:22:29

标签: c

#include<stdio.h>
int slogan();
int main()
{
    slogan(slogan());
    return 0;
}
int slogan()
{
    printf("onlyme\n");
}

我的疑问是,口号函数在其原型中没有参数列表,那么它如何接受函数调用作为其参数呢?

3 个答案:

答案 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参数类型声明符)是一个过时的   特征