[討論] local function 宣告 定義

看板C_and_CPP (C/C++)作者 (懂的付出才會幸福)時間13年前 (2013/04/16 09:26), 編輯推噓2(2010)
留言12則, 7人參與, 最新討論串1/1
在寫 local funciton 目前有遇到兩種寫法 (一) static void foo(void) { printf("foo function\r\n"); } int main(void) { foo(); return 0; } (二) static void foo(void); int main(void) { foo(); return 0; } static void foo(void) { printf("foo function\r\n"); } 自己是比較偏好第一種寫法 當改寫foo的參數時 不用再多改declaration 請問 第二種寫法的好處為何? 這兩種寫法, 哪種寫法較常被使用? 對於 compiler 所需要 compile 的時間, 會有差嗎? 謝謝 -- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 60.251.160.66

04/16 09:30, , 1F
我也想知道, 現在只知道這樣main()可以放在最上面..@@"
04/16 09:30, 1F

04/16 09:53, , 2F
如果foo裡頭呼叫bar bar裡頭又呼叫foo
04/16 09:53, 2F

04/16 09:54, , 3F
你就非得用第二種 因為他們不可能同時寫在對方前面
04/16 09:54, 3F

04/16 09:55, , 4F
C++ 的原則是,使用 foo() 這種樣式的函數調用之前,要嘛
04/16 09:55, 4F

04/16 09:56, , 5F
曾經定義,要嘛曾經宣告。但另外一個原則是 "定義只能有
04/16 09:56, 5F

04/16 09:57, , 6F
一個",所以通常會使用宣告。久之,宣告多了,就變標頭檔
04/16 09:57, 6F

04/16 12:48, , 7F
我都用第二種,這樣一開檔馬上就知道有那些func
04/16 12:48, 7F

04/16 12:49, , 8F
你只有一個沒感覺,如果你有幾十個就有差了
04/16 12:49, 8F

04/16 14:11, , 9F
常用的是2 宣告在標頭檔裡
04/16 14:11, 9F

04/17 13:35, , 10F
宣告放標頭檔
04/17 13:35, 10F

04/19 11:49, , 11F
答案是隨便你,local function 重要性不是那麼大。
04/19 11:49, 11F

04/19 11:50, , 12F
對編譯時間沒有什麼影響。
04/19 11:50, 12F
文章代碼(AID): #1HRAYob9 (C_and_CPP)
文章代碼(AID): #1HRAYob9 (C_and_CPP)