Re: [討論] 沒有C語言的實戰經驗,要怎麼磨練?
建議可以看看《C How To Program》, 它的範例程式碼品質不錯,
文字說明也夠多, 多做練習題可以幫助你理解語意.
不過有個觀念需要釐清的是: C 語言程式是跑在抽象機器 (abstra-
ct machine) 而不是實體機器上 (只存在想像的虛擬機器), 所以它
和你的應用偏底層與否其實沒什麼關係. C 語言規範了抽象機器的
行為, 並且要求編譯器的輸出在實體機器上的執行結果要和抽象機
器相同 (5.1.2.3/1).
增加這層抽象化可以確保程式碼可攜, 只是撰寫時需多留意這個觀
念, 避免將實體機器的屬性嵌進程式碼裡. 如 sizeof 運算子是對
物件大小資訊的封裝; 但如果喜歡「從做中學」:
printf("sizeof(int) is: %zu\n", sizeof(int));
// (possible) output
// sizeof(int) is: 4
因此得到「int 大小為 32 bits」的結論, 那就本末倒置了. 這類
錯誤結論反而會讓你遇到更多 undefined behavior, 影響學習成效
; 而偏底層應用則是需要活用 implementation-defined behavior.
《C How To Program》一書最強調的就是可攜性, 這點和語言設計
理念相同, 基本上把這本讀熟就能具備工作需要的語言知識. 你反
而得花更多時間去補充領域知識 (domain knowledge).
-
References
ISO/IEC 9899:202x (E) (N2596)
http://open-std.org/jtc1/sc22/wg14/www/docs/n2596.pdf
C99 Rationale
http://www.open-std.org/jtc1/sc22/wg14/www/C99RationaleV5.10.pdf
--
[P1389R1] Standing Document for SG20: Guidelines for Teaching
C++ to Beginners
https://wg21.link/p1389r1
SG20 Education and Recommended Videos for Teaching C++
https://www.cjdb.com.au/sg20-and-videos
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.233.156.253 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1627155123.A.D23.html
推
07/25 07:02,
4年前
, 1F
07/25 07:02, 1F
推
07/25 09:12,
4年前
, 2F
07/25 09:12, 2F
推
07/25 09:25,
4年前
, 3F
07/25 09:25, 3F
推
07/25 10:20,
4年前
, 4F
07/25 10:20, 4F
→
07/25 10:20,
4年前
, 5F
07/25 10:20, 5F
推
07/25 10:41,
4年前
, 6F
07/25 10:41, 6F
→
07/25 12:37,
4年前
, 7F
07/25 12:37, 7F
intN_t 主要是給予 bit-pattern 的保證, 而且編譯器也可以選擇
用軟體支援如 __int128 的操作, 所以還是足夠抽象的.
→
07/25 12:45,
4年前
, 8F
07/25 12:45, 8F
→
07/25 12:46,
4年前
, 9F
07/25 12:46, 9F
推
07/25 17:17,
4年前
, 10F
07/25 17:17, 10F
→
07/25 17:17,
4年前
, 11F
07/25 17:17, 11F
→
07/25 17:17,
4年前
, 12F
07/25 17:17, 12F
推
07/25 21:49,
4年前
, 13F
07/25 21:49, 13F
→
07/25 21:50,
4年前
, 14F
07/25 21:50, 14F
→
07/25 21:50,
4年前
, 15F
07/25 21:50, 15F
→
07/25 21:53,
4年前
, 16F
07/25 21:53, 16F
→
07/25 21:53,
4年前
, 17F
07/25 21:53, 17F
int 等型別的抽象化已經做夠足了, 如極值 (INT_MAX), 位元數
(INT_WIDTH) 等, 可以在大多數情境下使用. 因為這裡不是專板提
太多就失焦惹.. 0rz
→
07/25 22:10,
4年前
, 18F
07/25 22:10, 18F
※ 編輯: loveme00835 (118.233.156.253 臺灣), 07/25/2021 23:08:11
→
07/26 16:00,
4年前
, 19F
07/26 16:00, 19F
推
07/26 18:33,
4年前
, 20F
07/26 18:33, 20F
→
07/26 18:33,
4年前
, 21F
07/26 18:33, 21F
→
07/26 18:33,
4年前
, 22F
07/26 18:33, 22F
→
07/26 20:30,
4年前
, 23F
07/26 20:30, 23F
推
07/26 20:45,
4年前
, 24F
07/26 20:45, 24F
→
07/26 20:46,
4年前
, 25F
07/26 20:46, 25F
討論串 (同標題文章)
完整討論串 (本文為第 6 之 6 篇):
14
40
Soft_Job 近期熱門文章
26
60
PTT職涯區 即時熱門文章