我在CPP中有下面的代碼。C++中的函數聲明
//My code
#include<iostream>
using namespace std;
int main()
{
int a;
int display();
int printfun(display());// Function prototype
printfun(9);//Function calling
return 0;
}
int printfun(int x)
{
cout<<"Welcome inside the function-"<<x<<endl;
}
int display()
{
cout<<"Welcome inside the Display"<<endl;
return 5;
}
編譯時會引發錯誤「Line8:'printfun'不能用作函數」。
但是,當我在顯示函數中進行printfun調用時,相同的代碼完美地工作。
#include<iostream>
using namespace std;
int main()
{
int a;
int display();
int printfun(display());// Function prototype
return 0;
}
int printfun(int x)
{
cout<<"Welcome inside the function-"<<x<<endl;
}
int display()
{
printfun(9); // Function call
cout<<"Welcome inside the Display"<<endl;
return 5;
}
誰能解釋這背後的原因是什麼?
而不是'int printfun(display());'try'int printfun(int x)'。正如代碼中提到的那樣,這兩行聲明瞭函數原型,其中函數將在稍後實施。那麼,請看Kugelman的答案:D – wendelbsilva