[英]Calling the same function within the function
#include<stdio.h>
int slogan();
int main()
{
slogan(slogan());
return 0;
}
int slogan()
{
printf("onlyme\n");
}
我的疑問是,口號函數在其原型中沒有參數列表,那么它如何接受函數調用作為其參數呢?
在c中,空參數列表並不意味着不帶參數的函數 。 它表示具有未指定數量的參數的函數
聲明一個不帶參數的函數寫:
int func(void);
因為在C中,
int slogan();
聲明一個函數而不說任何關於它的參數。 這根本不是原型宣言,而是舊式的K&R宣言。 參數函數的原型聲明是
int slogan(void);
前一種形式存在於1989年之前的C后向兼容性,當時你無法在原型中提供參數信息。
請看第一個答案(第二個)第一個答案將為您提供函數聲明的准確解釋
第6.11.6節函數聲明符(K&R C)
使用帶有空括號的函數聲明符(不是prototype-format參數類型聲明符) 是一個過時的功能。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.