1.1 算术类型
问题1:char类型C/C++标准里没规定是有符号还是无符号,在实际开发过程中可能会导致溢出问题?
思考:查资料结果:
arm-linux-gcc 规定 char 为 unsigned char;
vc 编译器、x86上的 gcc 规定 char 为 signed char;
缺省情况下,编译器默认数据为signed类型,但是char类型除外。
自己思考:
考虑到可移植性和公司同事编译环境可能不统一,日常写代码尽量用signed/unsigned char;也可以用“char -1 >0”或者查CHAR_MIN(stdlib.h)来检查编译环境。(代码规范①)
问题2:跨平台、跨语言应用在各个平台上的字符集编码不同问题?
思考:只能根据各个平台的编码做字符集转换,以及开发前规划好用的API和编码。(开发思路①)
1.2 类型转换
很容易出问题和造成代码难读,尽量不用。(主要是不同型号机器的变量位数不一定相同以及编译环境的差异。)(代码规范②)
避免无法预知和依赖于环境的实现行为。(原则①)
1.3 字面量
转义序列