2017-03-08 61 views
-5

我已經在main()函數之上創建了函數和調用。它在Linux平臺上成功調用GCC編譯器中的函數。我不明白,主要功能如何調用我自己的功能。如何在C++中調用主函數

#include <iostream> 
using namespace std; 

int myFunc(); 

int ret = myFunc(); 

int main() 
{ 
    cout << ret << endl; 
} 

int myFunc() 
{ 
    int i = 10, j = 20, k; 
    k = i+j; 
    return k; 
} 
+0

「我不明白,功能有多主打電話給我自己的功能。」 - 它沒有 - 它在main之前調用,並打印出返回值。 –

+3

愚蠢的東西和完整的誤解需要閱讀[The Definitive C++ Book Guide and List](http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list) –

回答

8

全局變量main被調用之前被初始化。因此調用myFunc發生在調用main之前。您的main函數完全不會調用myFunc

如果您使用調試器並在myFuncmain函數中設置斷點並查看調用堆棧,那將非常明顯。

0

正如一些程序員哥們解釋的那樣,它在main函數之前被調用。

要不要被迷惑,我建議你顯式調用myFunc()main功能:

#include <iostream> 
using namespace std; 

int myFunc(); 

int main() 
{ 
    int ret = myFunc(); 
    cout << ret << endl; 
} 

int myFunc() 
{ 
    int i = 10; 
    int j = 20; 
    return i+j; 
}