sizeof是指标准C / C ++运算符,用于返回表达式或数据类型的字节大小。
我在 clang++ 编译器中发现了 sizeof...() 运算符的奇怪行为: 模板 无效测试(元组 t){ 计算<< "size...
sizeof(int) 在我的 Dev Cpp 上显示 4,即使它在 64 位机器上运行。为什么它不考虑底层硬件并显示 8?另外,如果我编译环境也改成64位的话...
我有一个 C++ 问题。 我写了以下课程: C级 { int f(int x, int y){ 返回 x; } }; c 类的 sizeof() 返回“1”。 我真的不明白为什么它返回1。 T...
#包括 int 主函数 () { 双数 = 5.2; 整数变量= 5; printf("%d ", sizeof(!num)); printf("%d ", sizeof(var = 15/2)); printf(“%d”, var); 返回0; } 跑步
Rust:如何在编译时或其他方式获取 sizeof::<T>? [重复]
我想将 T 转换为字节数组, fn to_byte(a: T) -> [u8; std::mem::size_of::()] { 未实现!() } 当我调用这个函数时 let a = to_bytes::(); ...
为什么结构的前向声明在我的代码中不起作用?什么时候可以在C中使用?
前向声明,无论是结构体还是函数,不是应该做前向声明所期望的事情吗,即让我们在定义结构或函数之前使用它们?为什么我...
sizeof 运算符的返回类型是什么? cppreference.com 和 msdn 说 sizeof 返回 size_t。它真的返回 size_t 吗? 我使用的是 VS2010 Professional,目标为 x64。 int main()...
我是一名计算机科学专业的学生,其中一个测试问题要求使用 malloc 在 C 中实现 realloc。我的老师说正确的答案是获取前一个数组的 sizeof 和
32 位数据模型与各种 64 位数据模型的 sizeof(size_t) 是多少?
在64位系统上,sizeof(unsigned long)取决于系统实现的数据模型,例如LLP64(Windows)上为4字节,LP64(Linux等)上为8字节。 sizeof(size_t) 是多少
考虑以下代码: int main() { int arr[] = {1,2,3,7,8}; std::size_t 大小 = sizeof arr; std::cout << size << '\n'; } I know that the above code will print the siz...
考虑以下代码: int main(){ int arr[] = {1,2,3,7,8}; int 大小 = sizeof(arr); 计算<< size; } I know that the above code will print the size of the array which is 4*5...
Visual Studio 2010 C++ 编译器为类分配错误的大小
目前,我正在通过 dllexport 从 DLL 导出一些类,并且我正在将私有成员设为私有,因此我为 DLL 提供的标头不包含任何私有内容。 问题是:...
Java中没有sizeof运算符是什么设计原因?知道它在 C++ 和 C# 中非常有用,那么如果需要的话如何获取某种类型的大小呢?
char string0[]=“0123456789”; // sizeof(string0)=11 char string1[11]="0123456789A"; // sizeof(字符串1)=11 string1 的情况很清楚,为字符分配了 11 个字节加上一个 f...
为什么这段代码中sizeof显示8字节? int有4个字节 char有1个字节 为什么 sizeof 不显示 5 个字节? #包括 #包括 int 主函数(无效) { 结构测试 { ...
在以下代码中,D1 和 D2 具有相同的数据成员。 但是,根据基类的最后一个成员是否初始化,对象大小会有所不同。 #包括 在下面的代码中,D1和D2都有相同的数据成员。 但是,根据基类最后一个成员是否初始化,对象大小会有所不同。 #include <cstdint> struct B1 { int x; short y = 0; }; struct D1 : B1 { short z; }; struct B2 { int x; short y; }; struct D2 : B2 { short z; }; static_assert(sizeof(D1) == sizeof(D2)); GCC 14.2(和 Clang 18.0.1)失败并显示: <source>:7:26: error: static assertion failed 7 | static_assert(sizeof(D1) == sizeof(D2)); | ~~~~~~~~~~~^~~~~~~~~~~~~ <source>:7:26: note: the comparison reduces to '(8 == 12)' 此行为的解释是什么? 这是与 C 兼容的任意 ABI 选择。 在 GCC 和 Clang 使用的 Itanium C++ ABI 中,出于布局目的,B2 被认为是微不足道的,而 B1 则不然。 (这是合理的,因为 B2 也是有效的 C 类型,而 B1 则不是。) ABI 指定只有当类型的尾部填充对于布局而言不重要时才会被重用。 (因此,如果基类类型对于布局而言很简单,则基类子对象上的 memcpy 将是安全的。) B1和B2都有两个字节的尾部填充。 D1 将重用它来适应 z 成员,而 D2 不会,而是将两个填充字节留空。因为整个类的大小必须是其对齐方式的倍数,即由于 4 成员而导致 int,所以 D2 还需要添加两个额外的新尾部填充字节。
_通用长度函数在默认情况下失败:sizeof(x)/sizeof((x)[0])
问题: 最近我了解了_Generic。在我尝试将它用作通用长度宏时,我偶然发现了一个奇怪的问题。虽然 LENA(x) 工作得很好,但通用的 LEN(x) 无法编译 u...
考虑这个 C 程序 #包括 #define TOTAL_ELEMENTS (sizeof(arr))/sizeof(arr[0]) int arr[] = {23, 34, 12, 17, 204, 99, 16}; int main() { 整数d; printf("%ld ”,