作者回复: 是这个网站哈 https://godbolt.org/,可以调整主题。
作者回复: 为什么 C 语言会有头文件这种设计?你可以这样简单理解:对于一个大型 C 项目,如何做到可以多人协作,分别编译,然后再把各自编写好的产物汇聚到一起,生成最终的可执行文件?我们通常会将一个模块可以对外使用的接口以原型的方式定义在头文件中,而将函数体实现隐藏。通过这种方式是不是就可以进行协作呢?但为什么其他语言没有借鉴类似的方式,这就说明这种方式并非一种好的设计。具体可以看看网上大家的讨论,比如这篇:https://softwareengineering.stackexchange.com/questions/233484/why-are-header-files-bad-design
作者回复: 正解!
作者回复: 其实也不太用纠结什么才是“学好”哈。作为语言,C 的语法就很简单很好学。但实际上,C 又由于应用的领域比较多,在写某些项目的时候又需要了解很多领域知识(比如编译器、数据库、协议等等)。所以总体还是看你学习 C 语言的目的是什么。
作者回复: 感谢支持,一起学习!
作者回复: 汇编代码本身就是平台相关的了,我们这门课中的汇编都基于 x86-64 指令集,你可以在这里找到有关这些指令的细节哈:https://www.intel.com/content/www/us/en/developer/articles/technical/intel-sdm.html
作者回复: 我大致看了一下那封邮件,主要原因是 Linus 希望使用“可以在 for 循环内部声明变量”,也就是 “for loop initial declaration” 这个特性。但这个语言特性只在 C99 或者 C11 下才支持。所以,才有了想要做升级的讨论。而之所以选择 C11,是由于编译器实现比较稳定,相较于 C99,也可以进一步利用更多的语言新特性。 升级做法应该就是把编译器选项从 -std=gnu89 改成 -std=gnu11。详情可以参考邮件列表链接:https://lore.kernel.org/lkml/20220308215615.14183-4-arnd@kernel.org/
作者回复: 哈哈哈,感谢支持,一起学习!
编辑回复: 小编给你加油!
作者回复: hhhh这是一个好问题,希望 2089 年的时候 C 语言还在。