簡體   English   中英

Visual Studio 2013 C ++函數語法錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM