2010-04-21 26 views
1

有一天我正在查看某人的代碼,我很惱火他們如何宣佈他們的所有功能第一個,然後稍後在下面調用它們。我想我用於Visual Studio的自動生成的功能,這是你打電話給他們 - 我想知道,你喜歡哪種方式?或者在這些事情上有標準嗎?函數是在調用它們之前還是之後聲明的?

回答

4

我不知道你的意思是什麼。在C和C++中,函數必須在調用它之前聲明,否則編譯器將不知道如何驗證您的參數和返回值。

+0

哦,也許*那是*爲什麼。從C#轉換到C++後,我確實注意到了這一點。也許這應該是一個問題!謝謝! – DMan 2010-04-21 23:48:20

+1

另請注意,「聲明」和「定義」之間存在差異。在C++中,它們必須首先被「聲明」,但您可以使用1行函數原型來實現,然後如果您願意,可以將函數的主體放在下面。即使在動態語言中,函數也必須在調用之前定義(運行時)。就像在Python中一樣,你可以將函數放在上面或下面,但是如果它在下面,並且函數被調用*立即*(在解析器到達定義之前),那麼你會得到一個運行時錯誤。 – mpen 2010-04-22 00:01:48

1

無論Visual Studio自動執行什麼操作,都可以視爲Microsoft標準。不總是最好的標準,但無論如何一個標準=)

+0

有時我希望你可以將鼠標懸停在函數名稱上,並查看整個函數或其他內容。 – DMan 2010-04-21 23:44:59

+0

@Dan:呃......這可能是一個非常大的工具提示。這就是智能感知描述的目的(爲什麼你需要看代碼?)。 Ctrl +點擊在一堆IDE中工作... – mpen 2010-04-21 23:58:39

+0

@標記 - 有時我不使用Visual Studio或VC++的情況下,不是很好。 – DMan 2010-04-22 00:02:11

2

我不認爲這很重要,因爲在執行開始之前,函數都被加載到內存中。這主要是一個風格問題。

就我個人而言,我把雜項函數不是類定義的一部分放在我的代碼的底部,因此它更易於閱讀。

雖然這只是我的0.02美元。

相關問題