作者:
ericerix (Ponwar)
2023-06-15 00:17:08如題
工作上最常碰到 C 語言
想請問有無 C 語言相關的 coding 用書,
像增進自己的 coding 實力與品質,謝謝!
作者:
saxontai (黑暗,點綴孤零零的星)
2023-06-15 02:21:00C不OO 寫design pattern會很痛苦吧
就一樣看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:0021st Century C
作者:
Apache (阿帕契)
2023-06-15 11:16:00改用Rust就是最好的pattern
作者:
descent (「雄辯是銀,沉默是金」)
2023-06-15 11:40:00C专家编程, C陷阱与缺陷C语言接口与实现:创建可重用软件的技术C语言程序设计:现代方法(第2版‧修订版)
作者: nicepeter (批特) 2023-06-15 11:42:00
同樣疑慮,C沒有物件導向,做design pattern有部分方法沒辦法實現,考慮用C++或Java嗎?
還在用C的工作應該有其獨特性,應該不是那麼好轉語言
C oop的三定義都能做到阿 是哪種方法不能實現?用strust + function pointer 再把strust pointer定義轉換做封裝
作者: HuangHedaz (Hedaz) 2023-06-15 17:24:00
用c可以實現OO喔void * object = (struct XX *)malloc(sizeof structXX)
作者:
NTUmaki (西木野真姬)
2023-06-15 17:37:00Coding 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校史
你所不知道的C語言 +1Linux核心設計CSAPP
作者:
Arbin (路人_Lv菜逼八)
2023-06-16 04:07:00如果是像Java那種private、public之類的碗糕C的確沒有,應該說做起來很不確實
C別鬧了,現在linux kernel都在改語言了
C 全都是 public,應該沒辦法實作 private?
作者: 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
一般來說,程式語言的選擇是根據要寫什麼產品…。
kernel module 支援用 rust 跟 kernel 改語言?再想想
作者:
wulouise (在線上!=在電腦前)
2023-06-17 19:47:00design pattern跟語言關係不大吧,要做都是可以樓上說的好像比較常指稱pimpl?
作者:
SuperTaco (TO-FU OYAKO)
2023-06-17 21:06:00c雖然不是不能寫oo但是真的很沒必要,想寫oo跟designpattern的話用適合的語言寫會比較好
作者:
pttano (pttano)
2023-06-18 12:34:00C沒有物件導向?可憐喔不會C就說咩
作者:
pacino (carry me)
2023-06-18 15:38:00我也覺得Linux kernel是最好的教科書。
作者:
Kimheeche (Kimheeche)
2023-06-19 09:37:00Linux kernel很多物件導向,請看usb driver
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
範例推文打不下 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