sizeof相关内容

sizeof(some pointer) 总是等于四吗?

例如:sizeof(char*) 返回 4.与 int*、long long* 一样,我尝试过的一切.这有什么例外吗? 解决方案 你得到的保证是 sizeof(char) == 1.没有其他保证,包括不保证 sizeof(int *) == sizeof(double *). 实际上,指针在 16 位系统上的大小为 2(如果你能找到的话),在 32 位系统上为 4,在 64 位系统上 ..
发布时间:2021-12-02 08:08:48 C/C++开发

为什么 sizeof(x++) 不增加 x?

这是在dev c++ windows中编译的代码: #include int main() {整数 x = 5;printf("%d and ", sizeof(x++));//注意 1printf("%d\n", x);//笔记2返回0;} 我希望在执行 note 1 后 x 为 6.但是,输出是: 4 和 5 谁能解释为什么 x 在 note 1 之后没有增加? 解决方案 来自 ..
发布时间:2021-12-02 08:03:22 其他开发

是否有机器,其中 sizeof(char) != 1,或至少 CHAR_BIT >8?

是否有机器(或编译器),其中 sizeof(char) != 1? C99 标准 是否说标准合规性实现上的 sizeof(char) 必须恰好为 1?如果有,请给我章节号和引文. 更新:如果我有一台机器(CPU),它不能寻址字节(最小读取是 4 个字节,对齐),但只有 4 个字节(uint32_t),可以为此编译machinedefine sizeof(char) to 4? size ..
发布时间:2021-12-01 23:58:00 其他开发

sizeof(&array) 返回什么?

按照问题:如何数组的地址是否等于它在 C 中的值? #include #define N 10char str2[N]={"你好"};int main(){printf("sizeof(str2): %d 字节\n", sizeof(str2));printf("sizeof(&str2): %d bytes\n", sizeof(&str2));返回0;} 输出: sizeof(str2) ..
发布时间:2021-12-01 23:54:12 其他开发

为什么 C 字符文字是整数而不是字符?

在 C++ 中,sizeof('a') == sizeof(char) == 1.这很直观,因为 'a' 是字符文字,并且 sizeof(char) == 1 由标准定义. 然而,在 C 中,sizeof('a') == sizeof(int).也就是说,看起来 C 字符文字实际上是整数.有谁知道为什么?我可以找到很多关于这个 C 怪癖的提及,但没有解释它为什么存在. 解决方案 讨论 ..
发布时间:2021-12-01 15:14:56 C/C++开发

为什么结构的 sizeof 不等于每个成员的 sizeof 之和?

为什么 sizeof 运算符返回的结构大小大于结构成员的总大小? 解决方案 这是因为添加了填充来满足对齐约束.数据结构对齐影响程序的性能和正确性: 未对齐的访问可能是一个硬错误(通常是SIGBUS). 未对齐的访问可能是软错误. 在硬件中进行更正,以适度降低性能. 或者通过在软件中模拟来纠正严重的性能下降. 此外,原子性和其他并发性保证可能会被破坏,从而导致细微的错误. ..
发布时间:2021-12-01 14:39:18 C/C++开发

如何确定 Python 中对象的大小?

我想知道如何在 Python 中获取字符串、整数等对象的大小. 相关问题:有多少Python 列表(元组)中是否存在每个元素的字节数? 我正在使用一个 XML 文件,其中包含指定值大小的大小字段.我必须解析这个 XML 并进行编码.当我想更改特定字段的值时,我将检查该值的大小字段.这里我想比较一下我要输入的新值是否与XML中的大小相同.我需要检查新值的大小.如果是字符串,我可以说它的长 ..
发布时间:2021-11-30 23:55:02 Python

结构的大小是否需要是该结构对齐的精确倍数?

我再次质疑一个长期存在的信念. 直到今天,我认为下面结构体的对齐通常是4,大小通常是5... 结构体示例{int m_Assume_32_Bits;char m_Assume_8_Bit_Bytes;}; 由于这个假设,我有使用 offsetof 来确定数组中两个相邻项之间的字节距离的数据结构代码.今天,我发现一些不应该使用 sizeof 的旧代码,不明白为什么我没有从中发现错误,编写了 ..
发布时间:2021-11-27 08:06:23 C/C++开发

如何在c中指定64位整数

我正在尝试在 C 中使用 64 位整数,但我收到了关于是否可行的混合信号. 当我执行 printf 时: printf("long int 的大小:%d\nlong long int 的大小:%d\n\n",(int)sizeof(long int), (int)sizeof(long long int)); 我得到的回应是: long int 的大小:4long long int ..
发布时间:2021-11-26 15:05:25 其他开发

64 位机器上 int 和 sizeof int 指针的大小

我只是想知道如何知道我的笔记本电脑是 64 位还是 32 位机器.(它是 64). 所以,我想打印以下内容: int main(){printf("%d",sizeof(int));} 结果是 4,这看起来很奇怪(因为它是 64 位机器) 但是,当我打印此内容时: int main(){printf("%d",sizeof(int*));} 结果是 8,这更有意义. 问题 ..
发布时间:2021-11-26 14:57:39 C/C++开发

什么决定整数的大小?

sizeof(int) 在我的 Dev Cpp 上显示 4,即使它在 64 位机器上运行.为什么它不考虑底层硬件并显示 8 呢?另外,如果我的编译环境也更改为 64 位(64 位编译器 是否首先有意义?!),那么 int 的大小会改变吗? 是否有任何标准来决定这一点? 解决方案 摘自 http://en.wikipedia.org/wiki/64-bit(在64-bit data m ..
发布时间:2021-11-26 14:49:18 其他开发

如何在c中指定64位整数

我正在尝试在 C 中使用 64 位整数,但我收到了关于是否可行的混合信号. 当我执行 printf 时: printf("long int 的大小:%d\nlong long int 的大小:%d\n\n",(int)sizeof(long int), (int)sizeof(long long int)); 我得到的回应是: long int 的大小:4long long int ..
发布时间:2021-11-25 05:25:18 C#

64 位机器上 int 和 sizeof int 指针的大小

我只是想知道如何知道我的笔记本电脑是 64 位还是 32 位机器.(它是 64). 所以,我想打印以下内容: int main(){printf("%d",sizeof(int));} 结果是 4,这看起来很奇怪(因为它是 64 位机器) 但是,当我打印此内容时: int main(){printf("%d",sizeof(int*));} 结果是 8,这更有意义. 问题 ..
发布时间:2021-11-25 05:17:12 C/C++开发

什么决定整数的大小?

sizeof(int) 在我的 Dev Cpp 上显示 4,即使它在 64 位机器上运行.为什么它不考虑底层硬件并显示 8 呢?另外,如果我的编译环境也更改为 64 位(64 位编译器 是否首先有意义?!),那么 int 的大小会改变吗? 是否有任何标准来决定这一点? 解决方案 摘自 http://en.wikipedia.org/wiki/64-bit(在64-bit data m ..
发布时间:2021-11-25 05:09:59 C#

32 位与各种 64 位数据模型的 sizeof(size_t) 是多少?

在 64 位系统上,sizeof(unsigned long) 取决于系统实现的数据模型,例如在 LLP64 (Windows) 上为 4 个字节,在 LP64 上为 8 个字节(Linux 等).sizeof(size_t) 应该是什么?它是否会像 sizeof(long) 那样随数据模型而变化?如果是,怎么办? 参考文献: 维基百科上的 64 位数据模型 解决方案 size ..
发布时间:2021-11-25 05:07:21 C#

x64 上的 sizeof(int)?

当我在 C#.NET 项目中执行 sizeof(int) 时,我得到的返回值为 4.我将项目类型设置为 x64,那么为什么它说的是 4 而不是 8?这是因为我正在运行托管代码吗? 解决方案 有 各种 64-位数据模型;Microsoft 将 LP64 用于 .NET:两者长em>s 和指针是 64 位的(尽管 C 风格的指针只能在 C# 中的 unsafe 上下文中使用,或者作为 IntP ..
发布时间:2021-11-25 05:02:25 C#/.NET