c++ - 如何在 C++ 中获取类型的大小?

标签 c++ clang oclint

我正在寻找一个返回类型大小的 C++ 函数。例如:

#include <stdint.h> 

int16_t my_var; 
int32_t size_of_var; 

// magical_function is what I'm looking for
// size_of_var should be equal to 16 because my_var is a int16_t
size_of_var = my_var.magical_function() ; 

我知道 size() 的存在是为了获取字符串的长度,所以我想也有一个函数表明了这一点。

此外,我正在使用 Clang 库,所以我可以获得一个类型 ( http://clang.llvm.org/doxygen/classclang_1_1Type.html ),但我目前不知道比较 2 种类型并知道这两种类型之间的较大值。

最佳答案

如果你想要 16 而不是 int16_t

的 2
sizeof(my_var) * CHAR_BIT

sizeof 给出了多少个字节,CHAR_BIT 给出了一个字节中有多少位(通常为 8)

关于c++ - 如何在 C++ 中获取类型的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24774207/

相关文章:

c++ - 在堆栈上创建的对象的地址是如何临时的

c++ - 是否可以使用指向函数类型的指针来专门化模板,这样它就可以分别看到该指针中使用的所有类型?

python - 如何将 compile_commands.json 与 clang python 绑定(bind)一起使用?

ios - OCLint 和 xcode 项目

c++ - 调用 RandGenerator 的隐式删除复制构造函数

c++ - 如何通过 DeviceIoControl 功能使用 ATA 命令读取大磁盘(如 1 ,2 TB)?

objective-c - 使用 clang 在命令行上编译多个 Objective-C 文件

c - 如何找出哪些文件与 "-lc"链接?

ios - 规则“OCLint:访问者或初始化外部的ivar分配”不存在

clang - 从 ObjCPropertyDecl 获取类信息