楼主:
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