作者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/cn.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