开发者社区> 问答> 正文

使用C编译器,如何设置使得int字长与系统字长相同

比如在处理问题:“如何不使用sizeof()用C程序获得系统字长?”

即便在64位机上,使用过的C编译器也会将int编译为32位。那么如何在C中设置,使得int编译字长和系统字长相同呢?

展开
收起
a123456678 2016-06-07 20:17:31 2023 0
1 条回答
写回答
取消 提交回答
  • 在Linux上用GCC编译,32位机的long是4字节,64位机的long是8字节。

    在VS上搜索了一下宏INT_MAX的定义,貌似只有一处,是2147483647,所以应该没有办法设置了吧,只能自己定义一个类型了。

    而且我了解到通常一些项目都不会直接使用默认类型,而是重新定义一组类型来使用,比如我就可以这样定义一组类型:

    #ifdef m32
    typedef int SpacelanInt;
    typedef float SpacelanFloat;
    #else
    typedef long int SpacelanInt;
    typedef double SpacelanFloat;
    #endif
    2019-07-17 19:30:59
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载