→ tinlans:在一連串用 sizeof 算 array 元素個數的文章出現後, 06/03 05:05
→ tinlans:我就有預感會出現這個問題.... 06/03 05:05
→ chessjim:歐歐!強者出現了!但我還是不知道怎麼修正我的code 06/03 05:11
→ chessjim:難道只能直接傳遞陣列大小作參數嗎? 06/03 05:13
→ tinlans:確實是這樣,只能直接傳遞陣列大小當參數,你這程式就等於 06/03 05:22
→ tinlans:不應該多寫一個 function 來計算。 06/03 05:23
→ tinlans:而且 function 的定義照慣例是不會隨便擺在 .h 檔的, 06/03 05:23
→ tinlans:這樣做會讓你在有兩個以上的 .c 都 include 它的時候 06/03 05:24
→ tinlans:又吃一次大虧。 06/03 05:24
→ tinlans:你當初定義都寫明了 int array[3],就代表你很清楚它的 06/03 05:26
→ tinlans:size 就是 3,實在沒有必要特地再去算一次。如果這 array 06/03 05:27
→ tinlans:你還想傳給其它函式做一些東西,那麼你拼死命也要想辦法把 06/03 05:27
→ tinlans:這個 3 記在某處,把 array 傳出去的時候跟著一起傳。 06/03 05:28
→ tinlans:那種 sizeof 的計算方式,只有在看得到 int array[3] 這行 06/03 05:29
→ tinlans:的範圍內有效,看不到它的地方,就沒有用了。 06/03 05:30
→ chessjim:我把.h的定義存到.c中了 06/03 06:12
→ chessjim:但是學校教的時候.h檔裡面也會函式定義XD 06/03 06:12
→ chessjim:非常感謝tinlans兄對sizeof的解說 06/03 06:13
→ tinlans:.h 檔只能放 inline 函式,如果不是這樣教,去罵老師。 06/03 14:22
→ chessjim:老師,我要罵你XXX啦 06/03 14:57