当前位置:  开发笔记 > 编程语言 > 正文

如何确定您的机器是否支持C中的标准整数数据类型?

如何解决《如何确定您的机器是否支持C中的标准整数数据类型?》经验,为你挑选了1个好方法。

我对C中stdint.h的概念有点熟悉.通过明确说明整数的大小,头文件将用该机器上的相应整数替换#define整数.例如,如果我的机器有16位无符号整数,uint32_t则将替换为long unsigned int.

但是,假设您的机器仅支持最多32位整数.如果你使用了会发生什么int64_t?如果本机不支持此整数大小,那么如何解决这个问题,因为没有替代方法可以修复它?

编译器会抛出错误并说它无法解决吗?或者它会尝试使用两个32位分配来保存64位数据类型吗?



1> Lundin..:

如果不支持某个stdint类型,则代码将无法编译.您可以检查它们是否受支持:

#include 

#ifndef UINT64_MAX
#error uint64_t not supported
#endif

如果您的编译器支持某种类型但CPU不支持,则意味着将以静默方式调用某些编译器库代码来模拟更大的类型.

例如,如果您uint32_t在8位微控制器上使用,编译器倾向于支持它,但由于该类型仅通过软件模拟,因此生成的机器代码将变得越来越大.

推荐阅读
ERIK又
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有