[請益] C 語言 Design pattern用書

作者: ericerix (Ponwar)   2023-06-15 00:17:08
如題
工作上最常碰到 C 語言
想請問有無 C 語言相關的 coding 用書,
像增進自己的 coding 實力與品質,謝謝!
作者: ghost90331 (Yang)   2023-06-15 01:48:00
Guru
作者: saxontai (黑暗,點綴孤零零的星)   2023-06-15 02:21:00
作者: eva19452002 (^^)   2023-06-15 06:36:00
有gpt,你不用再買任何一本書
作者: Inglenook (城市苦守)   2023-06-15 08:28:00
C不OO 寫design pattern會很痛苦吧
作者: shooter555 (shooter)   2023-06-15 09:45:00
就一樣看c++的書吧 反正通用 只是C很多東西要自己刻是不知道有沒有書是在教用C寫OOP 要不然就是拿linuxkernel出來看
作者: final01 (牛頓運動定律)   2023-06-15 10:16:00
你有先問chatGPT嗎
作者: knme (knem)   2023-06-15 10:24:00
提升code品質看紀律 可以看clean code/軟體工程
作者: dryman (dryman)   2023-06-15 10:32:00
21st Century C
作者: Apache (阿帕契)   2023-06-15 11:16:00
改用Rust就是最好的pattern
作者: descent (「雄辯是銀,沉默是金」)   2023-06-15 11:40:00
C专家编程, C陷阱与缺陷C语言接口与实现:创建可重用软件的技术C语言程序设计:现代方法(第2版‧修订版)
作者: nicepeter (批特)   2023-06-15 11:42:00
同樣疑慮,C沒有物件導向,做design pattern有部分方法沒辦法實現,考慮用C++或Java嗎?
作者: henrylin8086 (小木)   2023-06-15 12:12:00
還在用C的工作應該有其獨特性,應該不是那麼好轉語言
作者: shooter555 (shooter)   2023-06-15 14:10:00
C oop的三定義都能做到阿 是哪種方法不能實現?用strust + function pointer 再把strust pointer定義轉換做封裝
作者: buffalobill (水牛比爾)   2023-06-15 15:12:00
手刻virtual table啊...
作者: HuangHedaz (Hedaz)   2023-06-15 17:24:00
用c可以實現OO喔void * object = (struct XX *)malloc(sizeof structXX)
作者: NTUmaki (西木野真姬)   2023-06-15 17:37:00
Coding style 可能可以看 linux kernel?
作者: leewei05 (摳摳)   2023-06-15 17:57:00
推 jserv 大大整理的 你所不知道的 C 語言不過裡面的內容很多都會建議去看 C 規格書 XD
作者: prag222 (prag)   2023-06-15 20:55:00
都AI寫CODE了還在人工clean code校史
作者: steviewonder (SW)   2023-06-15 23:05:00
你所不知道的C語言 +1Linux核心設計CSAPP
作者: Arbin (路人_Lv菜逼八)   2023-06-16 04:07:00
如果是像Java那種private、public之類的碗糕C的確沒有,應該說做起來很不確實
作者: IhateOGC (我討厭)   2023-06-16 10:25:00
C別鬧了,現在linux kernel都在改語言了
作者: steviewonder (SW)   2023-06-16 10:56:00
很好奇說C別鬧的都寫什麼?
作者: j0958322080 (Tidus)   2023-06-16 11:19:00
C 全都是 public,應該沒辦法實作 private?
作者: qwer338859 (溫莎公爵)   2023-06-16 11:46:00
不是寫rust嗎
作者: shiaoGG   2023-06-16 12:52:00
建議老闆汰換掉這種過時的語言才是最佳解
作者: sipper   2023-06-16 13:55:00
老闆淘汰員工機率>>>>淘汰語言
作者: askacis (ASKA)   2023-06-16 14:14:00
一大堆open source都C寫的,還淘汰C咧XD至於linux kernel,rust也只用在device driver等級的code
作者: HuangHedaz (Hedaz)   2023-06-16 14:25:00
一般來說,程式語言的選擇是根據要寫什麼產品…。
作者: Bencrie   2023-06-16 20:04:00
kernel module 支援用 rust 跟 kernel 改語言?再想想
作者: wulouise (在線上!=在電腦前)   2023-06-17 19:47:00
design pattern跟語言關係不大吧,要做都是可以樓上說的好像比較常指稱pimpl?
作者: SuperTaco (TO-FU OYAKO)   2023-06-17 21:06:00
c雖然不是不能寫oo但是真的很沒必要,想寫oo跟designpattern的話用適合的語言寫會比較好
作者: pttano (pttano)   2023-06-18 12:34:00
C沒有物件導向?可憐喔不會C就說咩
作者: pacino (carry me)   2023-06-18 15:38:00
我也覺得Linux kernel是最好的教科書。
作者: Kimheeche (Kimheeche)   2023-06-19 09:37:00
Linux kernel很多物件導向,請看usb driver
作者: wsad50232 (阿豐)   2023-06-21 11:59:00
樓上不要曲解 看到什麼都說是OO
作者: shooter555 (shooter)   2023-06-21 14:40:00
C 可以做private 內外用的strust 定義不同 使用同一個pointer就好 把所有的function pointer當界面放在上段再把private內容放在下段 傳出去的strust 只定義上段這樣在其他的地方使用這個strust 就只能使用上段的public 函式 而下段的就當作private只能在內部被看到
作者: HowLeeHi (處處留心皆正妹)   2023-06-21 18:26:00
請問樓上大大可以寫個example嗎?thanks!
作者: balista (old man)   2023-06-21 19:38:00
加上 static, 另外是 struct, 不是 strust
作者: adamkk (愛還記得嗎)   2023-06-24 12:31:00
給樓上上,先給連結參考https://ppt.cc/fTcrSx透過G_DECLARE_DERIVABLE_TYPE及G_DEFINE_TYPE_WITH_PRIVATE兩個API將物件定義成衍生類別及含有private attrbutes
作者: Bencrie   2023-06-26 09:25:00
gobject ... 啊我頭好痛 XD
作者: shooter555 (shooter)   2023-06-26 17:08:00
範例推文打不下 google一下 C的物件導向應該就有簡單說 例定義struct _A { struct A }; 在.c檔 然後定義struct A { actions } 在.h檔, 那外部引用這個struct 的只能看到A的內容而看不到_A的內容, 那將A放在_A的開頭 兩者的pointer位址會相同 在利用C型態轉換沒有保互的特性 在外面引用的地方將A 傳入動作函式內 在函式內在將A 轉換成_A來使用_A的內容 就能得到A內屬於public 而_A內屬於private的特性
作者: HowLeeHi (處處留心皆正妹)   2023-07-04 19:33:00
感謝a大跟s大
作者: DCC1609 (頂扣扣)   2023-09-20 21:19:00
物件導向的概念在C++出現前就有了 C可能怎麼會不能做oop

Links booklink

Contact Us: admin [ a t ] ucptt.com