2017-03-08 14 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関数の前に呼び出されています。

が混同されないために、私はあなたが明示的main機能でmyFunc()を呼び出すことを示唆している:

#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; 
} 
関連する問題