随笔分类 - C/C++
摘要:概述 无符号数和有符号数是通用的计算机概念,具体到编程语言上则各有各的不同,程序员是解决实际问题的,所以必须熟悉编程语言中的整数。C/C++ 有自己特殊的算术运算规则,如整型提升和寻常算术转换,并且存在大量未定义行为,一不小心就会产生 bug,解决这些 bug 的最好方法就是熟悉整数性质以避免 bu
阅读全文
摘要:刚接触 Vim 的同学往往因为无法搭建开发环境而“从入门到放弃”,本文旨在帮助这些同学搭建开发环境,聚焦于最核心的开发需求,忽略换配色调字体之类的细枝末节。如果需要开箱即用的 vim 配置(发行版),可以使用 Spacevim。 本文使用 neovim-nightly,但也适用于 Vim 8.2+,
阅读全文
摘要:概述 C/C++ 中的变量占有一块内存,这时这个变量就是这块内存的别名,指针也可以指向内存,因此同一块内存可能会有多个别名。 int main() { int i = 0; int *ip = &i; } 其中i和ip是同一块内存,都是它的别名。 内存别名的存在会影响编译器生成的代码的行为。 考虑以
阅读全文
摘要:GNU C 允许在 C 代码中嵌入汇编代码,这种特性被称为内联汇编。使用内联汇编可以同时发挥 C 和汇编的强大能力。 本文介绍 GCC 的内联汇编拓展,Clang 编译器兼容大部分 GCC 语言拓展,因此 GNU C 的内联汇编特性大部分在 Clang 中工作正常。 本文实验环境如下: Linux
阅读全文