[請益] C 語言 Design pattern用書

看板 Soft_Job
作者 ericerix (我的帥,在於臉)
時間 2023-06-15 00:17:08
留言 75則留言 (29推 2噓 44→)

如題 工作上最常碰到 C 語言 想請問有無 C 語言相關的 coding 用書, 像增進自己的 coding 實力與品質,謝謝! ----- Sent from JPTT on my Samsung SM-M536B. --
※ 批踢踢實業坊(ptt.cc), 來自: 49.216.55.13 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1686759432.A.589.html

ghost90331: Guru 06/15 01:48

saxontai: https://wiki.sei.cmu.edu/confluence/display/c 06/15 02:21

eva19452002: 有gpt,你不用再買任何一本書 06/15 06:36

Inglenook: C不OO 寫design pattern會很痛苦吧 06/15 08:28

shooter555: 就一樣看c++的書吧 反正通用 只是C很多東西要自己刻 06/15 09:45

shooter555: 是不知道有沒有書是在教用C寫OOP 要不然就是拿linux 06/15 09:47

shooter555: kernel出來看 06/15 09:47

final01: 你有先問chatGPT嗎 06/15 10:16

knme: 提升code品質看紀律 可以看clean code/軟體工程 06/15 10:24

dryman: 21st Century C 06/15 10:32

Apache: 改用Rust就是最好的pattern 06/15 11:16

descent: C专家编程, C陷阱与缺陷 06/15 11:40

descent: C语言接口与实现:创建可重用软件的技术 06/15 11:40

descent: C语言程序设计:现代方法(第2版‧修订版) 06/15 11:40

nicepeter: 同樣疑慮,C沒有物件導向,做design pattern有部分方 06/15 11:42

nicepeter: 法沒辦法實現,考慮用C++或Java嗎? 06/15 11:42

henrylin8086: 還在用C的工作應該有其獨特性,應該不是那麼好轉語 06/15 12:12

henrylin8086: 言 06/15 12:12

shooter555: C oop的三定義都能做到阿 是哪種方法不能實現? 06/15 14:10

shooter555: 用strust + function pointer 再把strust pointer定義 06/15 14:57

shooter555: 轉換做封裝 06/15 14:57

buffalobill: 手刻virtual table啊... 06/15 15:12

HuangHedaz: 用c可以實現OO喔 06/15 17:24

HuangHedaz: void * object = (struct XX *)malloc(sizeof struct 06/15 17:26

HuangHedaz: XX) 06/15 17:26

NTUmaki: Coding style 可能可以看 linux kernel? 06/15 17:37

leewei05: 推 jserv 大大整理的 你所不知道的 C 語言 06/15 17:57

leewei05: 不過裡面的內容很多都會建議去看 C 規格書 XD 06/15 18:00

prag222: 都AI寫CODE了還在人工clean code校史 06/15 20:55

steviewonder: 你所不知道的C語言 +1 06/15 23:05

steviewonder: Linux核心設計 06/15 23:06

steviewonder: CSAPP 06/15 23:06

Arbin: 如果是像Java那種private、public之類的碗糕C的確沒有,應 06/16 04:07

Arbin: 該說做起來很不確實 06/16 04:07

IhateOGC: C別鬧了,現在linux kernel都在改語言了 06/16 10:25

steviewonder: 很好奇說C別鬧的都寫什麼? 06/16 10:56

j0958322080: C 全都是 public,應該沒辦法實作 private? 06/16 11:19

qwer338859: 不是寫rust嗎 06/16 11:46

shiaoGG: 建議老闆汰換掉這種過時的語言才是最佳解 06/16 12:52

sipper: 老闆淘汰員工機率>>>>淘汰語言 06/16 13:55

askacis: 一大堆open source都C寫的,還淘汰C咧XD 06/16 14:14

askacis: 至於linux kernel,rust也只用在device driver等級的code 06/16 14:22

HuangHedaz: 一般來說,程式語言的選擇是根據要寫什麼產品…。 06/16 14:25

Bencrie: kernel module 支援用 rust 跟 kernel 改語言?再想想 06/16 20:04

Bencrie: C 你可以用 opaque pointer,要藏就藏徹底 06/16 20:05

wulouise: design pattern跟語言關係不大吧,要做都是可以 06/17 19:47

wulouise: 樓上說的好像比較常指稱pimpl? 06/17 19:47

SuperTaco: c雖然不是不能寫oo但是真的很沒必要,想寫oo跟design 06/17 21:06

SuperTaco: pattern的話用適合的語言寫會比較好 06/17 21:06

pttano: C沒有物件導向?可憐喔不會C就說咩 06/18 12:34

pacino: 我也覺得Linux kernel是最好的教科書。 06/18 15:38

Kimheeche: Linux kernel很多物件導向,請看usb driver 06/19 09:37

wsad50232: 樓上不要曲解 看到什麼都說是OO 06/21 11:59

shooter555: C 可以做private 內外用的strust 定義不同 使用同一個 06/21 14:40

shooter555: pointer就好 把所有的function pointer當界面放在上段 06/21 14:41

shooter555: 再把private內容放在下段 傳出去的strust 只定義上段 06/21 14:41

shooter555: 這樣在其他的地方使用這個strust 就只能使用上段的pub 06/21 14:41

shooter555: lic 函式 而下段的就當作private只能在內部被看到 06/21 14:42

shooter555: private部份就是不透明指針的作法 public就是透露出去 06/21 16:26

shooter555: 的部份 06/21 16:27

HowLeeHi: 請問樓上大大可以寫個example嗎?thanks! 06/21 18:26

balista: 加上 static, 另外是 struct, 不是 strust 06/21 19:38

adamkk: 給樓上上,先給連結參考https://ppt.cc/fTcrSx 06/24 12:31

adamkk: 透過G_DECLARE_DERIVABLE_TYPE及G_DEFINE_TYPE_WITH_PRIVA 06/24 12:33

adamkk: TE兩個API將物件定義成衍生類別及含有private attrbutes 06/24 12:35

Bencrie: gobject ... 啊我頭好痛 XD 06/26 09:25

shooter555: 範例推文打不下 google一下 C的物件導向應該就有 06/26 17:08

shooter555: 簡單說 例定義struct _A { struct A }; 在.c檔 然後定 06/26 17:18

shooter555: 義struct A { actions } 在.h檔, 那外部引用這個struc 06/26 17:18

shooter555: t 的只能看到A的內容而看不到_A的內容, 那將A放在_A的 06/26 17:20

shooter555: 開頭 兩者的pointer位址會相同 在利用C型態轉換沒有保 06/26 17:20

shooter555: 互的特性 在外面引用的地方將A 傳入動作函式內 在函式 06/26 17:21

shooter555: 內在將A 轉換成_A來使用_A的內容 就能得到A內屬於publ 06/26 17:21

shooter555: ic 而_A內屬於private的特性 06/26 17:22

HowLeeHi: 感謝a大跟s大 07/04 19:33

您可能感興趣