作者ericerix (我的帥,在於臉)
看板Soft_Job
標題[請益] C 語言 Design pattern用書
時間Thu Jun 15 00:17:08 2023
如題
工作上最常碰到 C 語言
想請問有無 C 語言相關的 coding 用書,
像增進自己的 coding 實力與品質,謝謝!
-----
Sent from JPTT on my Samsung SM-M536B.
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 49.216.55.13 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Soft_Job/M.1686759432.A.589.html
1F:推 ghost90331: Guru 06/15 01:48
3F:→ eva19452002: 有gpt,你不用再買任何一本書 06/15 06:36
4F:推 Inglenook: C不OO 寫design pattern會很痛苦吧 06/15 08:28
5F:→ shooter555: 就一樣看c++的書吧 反正通用 只是C很多東西要自己刻 06/15 09:45
6F:→ shooter555: 是不知道有沒有書是在教用C寫OOP 要不然就是拿linux 06/15 09:47
7F:→ shooter555: kernel出來看 06/15 09:47
8F:噓 final01: 你有先問chatGPT嗎 06/15 10:16
9F:推 knme: 提升code品質看紀律 可以看clean code/軟體工程 06/15 10:24
10F:推 dryman: 21st Century C 06/15 10:32
11F:推 Apache: 改用Rust就是最好的pattern 06/15 11:16
12F:→ descent: C专家编程, C陷阱与缺陷 06/15 11:40
13F:→ descent: C语言接口与实现:创建可重用软件的技术 06/15 11:40
14F:→ descent: C语言程序设计:现代方法(第2版‧修订版) 06/15 11:40
15F:→ nicepeter: 同樣疑慮,C沒有物件導向,做design pattern有部分方 06/15 11:42
16F:→ nicepeter: 法沒辦法實現,考慮用C++或Java嗎? 06/15 11:42
17F:推 henrylin8086: 還在用C的工作應該有其獨特性,應該不是那麼好轉語 06/15 12:12
18F:→ henrylin8086: 言 06/15 12:12
19F:→ shooter555: C oop的三定義都能做到阿 是哪種方法不能實現? 06/15 14:10
20F:→ shooter555: 用strust + function pointer 再把strust pointer定義 06/15 14:57
21F:→ shooter555: 轉換做封裝 06/15 14:57
22F:→ buffalobill: 手刻virtual table啊... 06/15 15:12
23F:推 HuangHedaz: 用c可以實現OO喔 06/15 17:24
24F:→ HuangHedaz: void * object = (struct XX *)malloc(sizeof struct 06/15 17:26
25F:→ HuangHedaz: XX) 06/15 17:26
26F:推 NTUmaki: Coding style 可能可以看 linux kernel? 06/15 17:37
27F:推 leewei05: 推 jserv 大大整理的 你所不知道的 C 語言 06/15 17:57
28F:→ leewei05: 不過裡面的內容很多都會建議去看 C 規格書 XD 06/15 18:00
29F:推 prag222: 都AI寫CODE了還在人工clean code校史 06/15 20:55
30F:推 steviewonder: 你所不知道的C語言 +1 06/15 23:05
31F:→ steviewonder: Linux核心設計 06/15 23:06
32F:→ steviewonder: CSAPP 06/15 23:06
33F:推 Arbin: 如果是像Java那種private、public之類的碗糕C的確沒有,應 06/16 04:07
34F:→ Arbin: 該說做起來很不確實 06/16 04:07
35F:推 IhateOGC: C別鬧了,現在linux kernel都在改語言了 06/16 10:25
36F:推 steviewonder: 很好奇說C別鬧的都寫什麼? 06/16 10:56
37F:推 j0958322080: C 全都是 public,應該沒辦法實作 private? 06/16 11:19
38F:→ qwer338859: 不是寫rust嗎 06/16 11:46
39F:推 shiaoGG: 建議老闆汰換掉這種過時的語言才是最佳解 06/16 12:52
40F:推 sipper: 老闆淘汰員工機率>>>>淘汰語言 06/16 13:55
41F:推 askacis: 一大堆open source都C寫的,還淘汰C咧XD 06/16 14:14
42F:推 askacis: 至於linux kernel,rust也只用在device driver等級的code 06/16 14:22
43F:推 HuangHedaz: 一般來說,程式語言的選擇是根據要寫什麼產品…。 06/16 14:25
44F:推 Bencrie: kernel module 支援用 rust 跟 kernel 改語言?再想想 06/16 20:04
45F:→ Bencrie: C 你可以用 opaque pointer,要藏就藏徹底 06/16 20:05
46F:推 wulouise: design pattern跟語言關係不大吧,要做都是可以 06/17 19:47
47F:→ wulouise: 樓上說的好像比較常指稱pimpl? 06/17 19:47
48F:推 SuperTaco: c雖然不是不能寫oo但是真的很沒必要,想寫oo跟design 06/17 21:06
49F:→ SuperTaco: pattern的話用適合的語言寫會比較好 06/17 21:06
50F:噓 pttano: C沒有物件導向?可憐喔不會C就說咩 06/18 12:34
51F:→ pacino: 我也覺得Linux kernel是最好的教科書。 06/18 15:38
52F:推 Kimheeche: Linux kernel很多物件導向,請看usb driver 06/19 09:37
53F:推 wsad50232: 樓上不要曲解 看到什麼都說是OO 06/21 11:59
54F:→ shooter555: C 可以做private 內外用的strust 定義不同 使用同一個 06/21 14:40
55F:→ shooter555: pointer就好 把所有的function pointer當界面放在上段 06/21 14:41
56F:→ shooter555: 再把private內容放在下段 傳出去的strust 只定義上段 06/21 14:41
57F:→ shooter555: 這樣在其他的地方使用這個strust 就只能使用上段的pub 06/21 14:41
58F:→ shooter555: lic 函式 而下段的就當作private只能在內部被看到 06/21 14:42
59F:→ shooter555: private部份就是不透明指針的作法 public就是透露出去 06/21 16:26
60F:→ shooter555: 的部份 06/21 16:27
61F:推 HowLeeHi: 請問樓上大大可以寫個example嗎?thanks! 06/21 18:26
62F:→ balista: 加上 static, 另外是 struct, 不是 strust 06/21 19:38
64F:→ adamkk: 透過G_DECLARE_DERIVABLE_TYPE及G_DEFINE_TYPE_WITH_PRIVA 06/24 12:33
65F:→ adamkk: TE兩個API將物件定義成衍生類別及含有private attrbutes 06/24 12:35
66F:推 Bencrie: gobject ... 啊我頭好痛 XD 06/26 09:25
67F:→ shooter555: 範例推文打不下 google一下 C的物件導向應該就有 06/26 17:08
68F:→ shooter555: 簡單說 例定義struct _A { struct A }; 在.c檔 然後定 06/26 17:18
69F:→ shooter555: 義struct A { actions } 在.h檔, 那外部引用這個struc 06/26 17:18
70F:→ shooter555: t 的只能看到A的內容而看不到_A的內容, 那將A放在_A的 06/26 17:20
71F:→ shooter555: 開頭 兩者的pointer位址會相同 在利用C型態轉換沒有保 06/26 17:20
72F:→ shooter555: 互的特性 在外面引用的地方將A 傳入動作函式內 在函式 06/26 17:21
73F:→ shooter555: 內在將A 轉換成_A來使用_A的內容 就能得到A內屬於publ 06/26 17:21
74F:→ shooter555: ic 而_A內屬於private的特性 06/26 17:22
75F:推 HowLeeHi: 感謝a大跟s大 07/04 19:33
76F:推 DCC1609: 物件導向的概念在C++出現前就有了 C可能怎麼會不能做oo 09/20 21:19
77F:→ DCC1609: p 09/20 21:19