clang的uint24_t是如何工作的?我可以在clang / LLVM之外使用它吗?

时间:2017-01-03 10:46:22

标签: c++ gcc clang

作为GCC用户,我发现clang支持uint24_t类型(无论如何都是stdint.h)。

这是如何工作的?我的意思是,它是纯粹在内部支持,作为语言扩展,还是像C ++类一样实现,有一些抽象超过3个字节或16位值和另一个8位值?并且 - 它是如何可能的?' yank'这样的实现并自己使用GCC?

注意:

  • 我希望在现代C ++中使用类似uint24_t的类(或更普遍的uint_t<N>);我的选择是自己动手。
  • 如果你喜欢这个问题,你可以s/uint/int/g;

1 个答案:

答案 0 :(得分:3)

这不是便携式或标准型。它仅适用于AVR(具有24位地址)和GCC has it for that architecture, too(自GCC v4.7起)。

如果架构不支持本机24位整数,那么它就不会被定义。

如果查看Clang's stdint.h header file,您将看到只有在定义了内部SELECT domain FROM mytable GROUP BY domain HAVING sum(is_verified)<1; 符号时才有条件地包含24位整数typedef:

__INT24_TYPE__