C陷阱与缺陷(七)中,有哪些常见问题需要注意?
- 内容介绍
- 文章标签
- 相关推荐
本文共计795个文字,预计阅读时间需要4分钟。

可移植性缺陷问题(1)参数类型提升的问题,注意取值范围的不同(2)函数声明方式的差异(3)标识符命名的限制,变量命名时注意与库名冲突,如Malloc与malloc等。

可移植行缺陷问题
(1)参数类型提升的问题,注意取值范围的不同
(2)函数的声明方式不同
(3)标识符名称的限制,在变量命名时注意与库名专有命名冲突
如Malloc 与malloc,new等,而一些库名会采用下划线方式 _malloc, 但也有 __FILE__,因此添加下划线方式也要特别注意。建议用后下划线。
(4)整数大小
short int long
·
早期的操作系统是16位系统, int用二字节表示,范围是-32768~32767; long用4字节表示,范围是-2147483648~2147483647。
后来发展到32位操作系统, int 用4字节表示,与long相同。
目前的操作系统已发展到64位操作系统,但因程序编译工艺的不同,两者表现出不同的差别: 32位编译系统:int占四字节,与long相同。 64位编译系统:int占四字节,long占8字节,long数据范围变为:-2^63~2^63-1
在标准中,并没有规定long一定要比int长,也没有规定short要比int短。 标准是这么说的:长整型至少和整型一样长,整型至少和短整型一样长。 这个的规则同样适用于浮点型long double至少和double一样长,double至少和float一样长。
本文共计795个文字,预计阅读时间需要4分钟。

可移植性缺陷问题(1)参数类型提升的问题,注意取值范围的不同(2)函数声明方式的差异(3)标识符命名的限制,变量命名时注意与库名冲突,如Malloc与malloc等。

可移植行缺陷问题
(1)参数类型提升的问题,注意取值范围的不同
(2)函数的声明方式不同
(3)标识符名称的限制,在变量命名时注意与库名专有命名冲突
如Malloc 与malloc,new等,而一些库名会采用下划线方式 _malloc, 但也有 __FILE__,因此添加下划线方式也要特别注意。建议用后下划线。
(4)整数大小
short int long
·
早期的操作系统是16位系统, int用二字节表示,范围是-32768~32767; long用4字节表示,范围是-2147483648~2147483647。
后来发展到32位操作系统, int 用4字节表示,与long相同。
目前的操作系统已发展到64位操作系统,但因程序编译工艺的不同,两者表现出不同的差别: 32位编译系统:int占四字节,与long相同。 64位编译系统:int占四字节,long占8字节,long数据范围变为:-2^63~2^63-1
在标准中,并没有规定long一定要比int长,也没有规定short要比int短。 标准是这么说的:长整型至少和整型一样长,整型至少和短整型一样长。 这个的规则同样适用于浮点型long double至少和double一样长,double至少和float一样长。

