检查unsigned long long是否可用

原始时代

如何通过预处理器指令检查类型unsigned long long在当前构建环境中是否可用?

我尝试检查

#if __STDC_VERSION__ >= 199901L
    /* Available */
#else
    /* Not available */
#endif

但是使用gcc编译并且至少没有-std=-compiler参数,这将导致“不可用”(但可以)。

是否有更好的宏要检查,以便至少可以与C99标准编译器一起使用,而与GCC一起使用而无需-std=C99

科迪·格雷

尽管这不是最优雅的解决方案,但我的第一个直觉是检查标题中是否存在ULLONG_MAX符号limits.h

如果已定义,则unsigned long long int几乎可以肯定类型可用。如果未定义,则该类型可能不可用,或者至少没有得到很好的支持,并且只能作为不可移植的编译器扩展使用。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

unsigned long long的问题

来自分类Dev

Unsigned long long overflow error?

来自分类Dev

long long转换为unsigned long的问题

来自分类Dev

是否可以保证std :: streampos是unsigned long long?

来自分类Dev

从unsigned long long转换为unsigned int

来自分类Dev

C unsigned long long和imulq

来自分类Dev

Unsigned long long溢出错误?

来自分类Dev

奇怪的unsigned long long int行为

来自分类Dev

`unsigned long long`太小,无法代表数字?

来自分类Dev

Printf Unsigned Long 的奇怪输出

来自分类Dev

标准是否定义了int-> unsigned long long转换?

来自分类Dev

在 C 中检查溢出 long long

来自分类Dev

将unsigned long long int强制转换为signed long long int可能吗?

来自分类常见问题

unsigned long long(10)无法在clang和gcc上编译

来自分类Dev

如何将unsigned long long转换为double

来自分类Dev

Java相当于unsigned long long不是BigInteger吗?

来自分类Dev

为什么double可以存储比unsigned long long更大的数字?

来自分类Dev

c ++ usigned long long range vs mysql unsigned bigint range

来自分类Dev

unsigned long long(10)无法在clang和gcc上编译

来自分类Dev

将unsigned long long转换为float并失去精度

来自分类Dev

在C ++中将字符串转换为unsigned long long

来自分类Dev

无法将boost :: lambda :: ...转换为long long unsigned int

来自分类Dev

整数类型大于unsigned long long,还有库吗?

来自分类Dev

如何初始化C语言中的unsigned long long

来自分类Dev

在VC6中构建,需要unsigned long long

来自分类Dev

c ++ usigned long long range vs mysql unsigned bigint range

来自分类Dev

带有多个操作数的 unsigned long long 加法

来自分类Dev

Xcode抛出'atomic_notify_one <unsigned long>'不可用

来自分类Dev

如何在Java中检查Long是否为null

Related 相关文章

热门标签

归档