[請益] C 語言 Design pattern用書

看板Soft_Job (軟體人)作者 (我的帥,在於臉)時間3年前 (2023/06/15 00:17), 編輯推噓28(30245)
留言77則, 36人參與, 最新討論串1/1
如題 工作上最常碰到 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

06/15 01:48, 3年前 , 1F
Guru
06/15 01:48, 1F

06/15 02:21, 3年前 , 2F

06/15 06:36, 3年前 , 3F
有gpt,你不用再買任何一本書
06/15 06:36, 3F

06/15 08:28, 3年前 , 4F
C不OO 寫design pattern會很痛苦吧
06/15 08:28, 4F

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

06/15 09:47, 3年前 , 6F
是不知道有沒有書是在教用C寫OOP 要不然就是拿linux
06/15 09:47, 6F

06/15 09:47, 3年前 , 7F
kernel出來看
06/15 09:47, 7F

06/15 10:16, 3年前 , 8F
你有先問chatGPT嗎
06/15 10:16, 8F

06/15 10:24, 3年前 , 9F
提升code品質看紀律 可以看clean code/軟體工程
06/15 10:24, 9F

06/15 10:32, 3年前 , 10F
21st Century C
06/15 10:32, 10F

06/15 11:16, 3年前 , 11F
改用Rust就是最好的pattern
06/15 11:16, 11F

06/15 11:40, 3年前 , 12F
C专家编程, C陷阱与缺陷
06/15 11:40, 12F

06/15 11:40, 3年前 , 13F
C语言接口与实现:创建可重用软件的技术
06/15 11:40, 13F

06/15 11:40, 3年前 , 14F
C语言程序设计:现代方法(第2版‧修订版)
06/15 11:40, 14F

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

06/15 11:42, 3年前 , 16F
法沒辦法實現,考慮用C++或Java嗎?
06/15 11:42, 16F

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

06/15 12:12, 3年前 , 18F
06/15 12:12, 18F

06/15 14:10, 3年前 , 19F
C oop的三定義都能做到阿 是哪種方法不能實現?
06/15 14:10, 19F

06/15 14:57, 3年前 , 20F
用strust + function pointer 再把strust pointer定義
06/15 14:57, 20F

06/15 14:57, 3年前 , 21F
轉換做封裝
06/15 14:57, 21F

06/15 15:12, 3年前 , 22F
手刻virtual table啊...
06/15 15:12, 22F

06/15 17:24, 3年前 , 23F
用c可以實現OO喔
06/15 17:24, 23F

06/15 17:26, 3年前 , 24F
void * object = (struct XX *)malloc(sizeof struct
06/15 17:26, 24F

06/15 17:26, 3年前 , 25F
XX)
06/15 17:26, 25F

06/15 17:37, 3年前 , 26F
Coding style 可能可以看 linux kernel?
06/15 17:37, 26F

06/15 17:57, 3年前 , 27F
推 jserv 大大整理的 你所不知道的 C 語言
06/15 17:57, 27F

06/15 18:00, 3年前 , 28F
不過裡面的內容很多都會建議去看 C 規格書 XD
06/15 18:00, 28F

06/15 20:55, 3年前 , 29F
都AI寫CODE了還在人工clean code校史
06/15 20:55, 29F

06/15 23:05, 3年前 , 30F
你所不知道的C語言 +1
06/15 23:05, 30F

06/15 23:06, 3年前 , 31F
Linux核心設計
06/15 23:06, 31F

06/15 23:06, 3年前 , 32F
CSAPP
06/15 23:06, 32F

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

06/16 04:07, 3年前 , 34F
該說做起來很不確實
06/16 04:07, 34F

06/16 10:25, 3年前 , 35F
C別鬧了,現在linux kernel都在改語言了
06/16 10:25, 35F

06/16 10:56, 3年前 , 36F
很好奇說C別鬧的都寫什麼?
06/16 10:56, 36F

06/16 11:19, 3年前 , 37F
C 全都是 public,應該沒辦法實作 private?
06/16 11:19, 37F

06/16 11:46, 3年前 , 38F
不是寫rust嗎
06/16 11:46, 38F

06/16 12:52, 3年前 , 39F
建議老闆汰換掉這種過時的語言才是最佳解
06/16 12:52, 39F

06/16 13:55, 3年前 , 40F
老闆淘汰員工機率>>>>淘汰語言
06/16 13:55, 40F

06/16 14:14, 3年前 , 41F
一大堆open source都C寫的,還淘汰C咧XD
06/16 14:14, 41F

06/16 14:22, 3年前 , 42F
至於linux kernel,rust也只用在device driver等級的code
06/16 14:22, 42F

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

06/16 20:04, 3年前 , 44F
kernel module 支援用 rust 跟 kernel 改語言?再想想
06/16 20:04, 44F

06/16 20:05, 3年前 , 45F
C 你可以用 opaque pointer,要藏就藏徹底
06/16 20:05, 45F

06/17 19:47, 3年前 , 46F
design pattern跟語言關係不大吧,要做都是可以
06/17 19:47, 46F

06/17 19:47, 3年前 , 47F
樓上說的好像比較常指稱pimpl?
06/17 19:47, 47F

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

06/17 21:06, 3年前 , 49F
pattern的話用適合的語言寫會比較好
06/17 21:06, 49F

06/18 12:34, 3年前 , 50F
C沒有物件導向?可憐喔不會C就說咩
06/18 12:34, 50F

06/18 15:38, 3年前 , 51F
我也覺得Linux kernel是最好的教科書。
06/18 15:38, 51F

06/19 09:37, 3年前 , 52F
Linux kernel很多物件導向,請看usb driver
06/19 09:37, 52F

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

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

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

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

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

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

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

06/21 16:27, , 60F
的部份
06/21 16:27, 60F

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

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

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

06/24 12:33, , 64F
透過G_DECLARE_DERIVABLE_TYPE及G_DEFINE_TYPE_WITH_PRIVA
06/24 12:33, 64F

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

06/26 09:25, , 66F
gobject ... 啊我頭好痛 XD
06/26 09:25, 66F

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

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

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

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

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

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

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

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

07/04 19:33, , 75F
感謝a大跟s大
07/04 19:33, 75F

09/20 21:19, , 76F
物件導向的概念在C++出現前就有了 C可能怎麼會不能做oo
09/20 21:19, 76F

09/20 21:19, , 77F
p
09/20 21:19, 77F
文章代碼(AID): #1aYUW8M9 (Soft_Job)
文章代碼(AID): #1aYUW8M9 (Soft_Job)