C语言编程Tips


不定时更新

  • 1.strlen()函数不计算字符串尾部的'\0'字符。
  • 2.~0 ^ x可以用于将x按位取反,可用于将x的指定位取反。这一操作也可以由x = [111...1] - x完成。
  • 3.大多常见的操作系统的字节顺序是按照‘小端法’存储的,即数0x1A4C68DF在内存中的实际顺序是 DF 68 4C 1A (小端在前) 。
  • 4.几乎所有编译器再对有符号数进行右移时采用算数右移(补最高有效位)。
  • 5.在C99标准中存在头文件stdint.h定义了一组标准长度的数据类型,同时有一组宏定义了它们的范围,格式化打印时也需要使用宏。
  • 6.C语言中limits.h头文件中对INT_MIN的定义是-INT_MAX-1,这样做是为了避免类型错误,原因在这里
  • 7.C语言在表示数量时尽量使用有符号类型,在使用位字段和二进制掩码时使用无符号类型,防止升级混乱类型时出现错误(如-1和很大的正数)。
  • 8.尽量避免在数组初始化的最后使用“拖尾逗号”。
  • 9.运算符的优先级. 高于*,[]和()高于*,==和!=高于位操作符和赋值符,算术运算符高于移位运算符,逗号运算符优先级最低。在运算符混合式最好一律加上括号。
  • 10.在函数中定义的局部变量会随着函数的结束而销毁,因此千万不要把指向局部变量的指针作为函数的返回值。一种可能的解决方案是用户提前为函数的返回值手动分配内存,从而使内存的分配和释放在代码中距离仅可能的近,从而避免出现内存泄漏。
  • 11.ANSI C在解释标记时采取Maximal Munch Strategy,即如果下一个标记有超过一种的解释方案,编译器将选择能组成最长字符序列的方案。

← Prev 反码与补码 | C语言中不借用中间值交换数据的方法 Next →