[英]Visual Studio 2013 c++ function syntax error
我使用的是VS 2013,出於某種原因,在C ++控制台應用程序中,簡單的函數聲明將不起作用。 到底是怎么回事?
我有#include iostream,代碼在int main(){...}主體內部。
-TSR
更新:
這是完整的程序
盡管可以聲明一個函數,但不能在另一個函數中定義一個函數。 所以允許這樣的事情:
int main()
{
void func1() ; // function declaration but not definition.
}
void func1()
{
//...
}
但這可能對您更有意義:
int printmessage()
{
//...
}
int main()
{
}
函數定義僅在名稱空間或類范圍內才允許使用,C ++標准草案第8.4
節“ 函數定義”第2段說:
只能在名稱空間或類范圍內定義函數。
查看我程序中的注釋。 您應該在main方法之外編寫函數。
/* Wrong code
-----------------------------------------
*/
#include <iostream>
int main()
{
int printmessage ()
{
}
}
/* Correct code
----------------------------------------
*/
#include <iostream>
int printmessage ()
{
}
int main()
{
}
在主循環內不能有函數定義。 您可以在main(int argc,char ** argv)之前使用函數原型,也可以在main之前定義函數。
// Either define your function here
void Foo() { }
// Or use this prototyping
void Bar();
int main ()
{
// Call your function here
Foo();
return EXIT_SUCCESS;
}
void Bar() { }
希望這可以幫助。
對於另一個函數內部的函數聲明,它只是與C編程的向后兼容性。 我懷疑是否有人再使用過此功能。 另外,這是C ++而不是C
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.