看了隔壁浮点数的帖子挺有感触。0.1+0.2≠0.3那个坑,我当初是真搞不懂,直到把C啃下来才彻底通了。
说真的,C是我心里永远的本命。不是因为它好写,恰恰相反,它啰嗦、容易炸、啥都得自己管。其实但它贴近硬件这个特性太致命了——指针让你直接摸到内存地址,int和float在底层到底怎么排的,一看就明白。当年卡在浮点那个坑里,翻了C的内存布局才反应过来:哦,原来小数根本不是按你想的那样存的。这种"啊哈"的瞬间,Python永远给不了你。
写AI现在基本靠Python,但这不妨碍C当我的元语言。上层抽象再花哨,底下跑的还是那套东西。懂C怎么跟操作系统要内存、怎么压栈传参,你用numpy、用torch的时候才敢真放心,而不是把它当黑盒盲调。
极简也是一种诚实。C没多少语法糖,你写下的每一行基本都能对应到编译器和OS的真实行为。读源码、debug的时候,这种透明感特别上头。说白了,C不教你写程序,它教你理解计算机本身。