Questions tagged «sizeof»

sizeof是指标准C / C ++运算符,用于返回表达式或数据类型的字节大小。


13
如何确定Python中对象的大小?
我想知道如何在Python中获取对象的大小,例如字符串,整数等。 相关问题:Python列表(元组)中每个元素有多少个字节? 我使用的XML文件包含指定值大小的大小字段。我必须解析此XML并进行编码。当我想更改特定字段的值时,我将检查该值的大小字段。在这里,我想比较输入的新值是否与XML中的值相同。我需要检查新值的大小。如果是字符串,我可以说它的长度。但是如果是int,float等,我会感到困惑。

9
为什么sizeof(x ++)不增加x?
这是在dev c ++窗口中编译的代码: #include <stdio.h> int main() { int x = 5; printf("%d and ", sizeof(x++)); // note 1 printf("%d\n", x); // note 2 return 0; } 我预计x在执行注释1后将为6 。但是,输出为: 4 and 5 谁能解释为什么注释1x之后不增加?
505 c  sizeof 


19
如何获取JavaScript对象的大小?
我想知道一个JavaScript对象占用的大小。 具有以下功能: function Marks(){ this.maxMarks = 100; } function Student(){ this.firstName = "firstName"; this.lastName = "lastName"; this.marks = new Marks(); } 现在我实例化student: var stud = new Student(); 这样我就可以做 stud.firstName = "new Firstname"; alert(stud.firstName); stud.marks.maxMarks = 200; 等等 现在,stud对象将在内存中占据一些大小。它具有一些数据和更多对象。 我如何找出stud对象占用多少内存?像sizeof()JavaScript中的?如果我能在单个函数调用中找到它,那将真的很棒sizeof(stud)。 我已经在互联网上搜索了几个月了-找不到它(在几个论坛中提问-没有回复)。


7
为什么“ sizeof(a?true:false)”给出四个字节的输出?
我有一小段关于sizeof三元运算符的代码: #include <stdio.h> #include <stdbool.h> int main() { bool a = true; printf("%zu\n", sizeof(bool)); // Ok printf("%zu\n", sizeof(a)); // Ok printf("%zu\n", sizeof(a ? true : false)); // Why 4? return 0; } 输出(GCC): 1 1 4 // Why 4? 但在这里, printf("%zu\n", sizeof(a ? true : false)); // Why 4? 三元运算符返回booleantype,sizeof …

4
为什么sizeof(my_arr)[0]可以编译并等于sizeof(my_arr [0])?
为什么要编译此代码? _Static uint32_t my_arr[2]; _Static_assert(sizeof(my_arr) == 8, ""); _Static_assert(sizeof(my_arr[0]) == 4, ""); _Static_assert(sizeof(my_arr)[0] == 4, ""); 前2个断言显然是正确的,但我希望最后一行会失败,因为我的理解是sizeof()应求值为整数文字,不能将其视为数组。换句话说,它将以与以下行失败相同的方式失败: _Static_assert(4[0] == 4, ""); 有趣的是,以下确实确实无法编译(应该做同样的事情,不是吗?): _Static_assert(*sizeof(my_arr) == 4, ""); 错误:一元'*'的类型参数无效(具有'long unsigned int')_Static_assert(* sizeof(my_arr)== 4,“”); 如果有关系,我正在使用gcc 5.3.0
129 c  sizeof 



9
C中单个结构成员的大小
我试图声明一个依赖于另一个结构的结构。我想使用sizeof它是安全/学究的。 typedef struct _parent { float calc ; char text[255] ; int used ; } parent_t ; 现在,我想声明一个结构child_t,其大小与相同parent_t.text。 我怎样才能做到这一点?(下面的伪代码。) typedef struct _child { char flag ; char text[sizeof(parent_t.text)] ; int used ; } child_t ; 我尝试了几种不同的方式与parent_t和struct _parent,但是我的编译器不接受。 作为技巧,这似乎可行: parent_t* dummy ; typedef struct _child { char flag ; char text[sizeof(dummy->text)] …
109 c  struct  sizeof 

13
为什么数组参数的大小与main中的大小不同?
为什么作为参数发送的数组大小与main中的大小不同? #include <stdio.h> void PrintSize(int p_someArray[10]); int main () { int myArray[10]; printf("%d\n", sizeof(myArray)); /* As expected, 40 */ PrintSize(myArray);/* Prints 4, not 40 */ } void PrintSize(int p_someArray[10]){ printf("%d\n", sizeof(p_someArray)); }
104 c  arrays  function  sizeof 

12
为什么C字符文字是整型而不是char?
在C ++中,sizeof('a') == sizeof(char) == 1。这是直观的意义,因为'a'它是字符文字,并且sizeof(char) == 1由标准定义。 但是在C中,sizeof('a') == sizeof(int)。即,看来C字符文字实际上是整数。有人知道为什么吗?我可以找到很多关于此C怪癖的提及,但没有解释为什么它存在。
103 c++  c  char  sizeof 

3
为什么sizeof int是错误的,而sizeof(int)是正确的呢?
我们知道这sizeof是一个用于计算任何数据类型和表达式的大小的运算符,并且当操作数是表达式时,可以省略括号。 int main() { int a; sizeof int; sizeof( int ); sizeof a; sizeof( a ); return 0; } 第一种用法sizeof是错误的,而其他用法是正确的。 使用gcc进行编译时,将显示以下错误消息: main.c:5:9: error: expected expression before ‘int’ 我的问题是,为什么C标准不允许这种操作。会sizeof int引起歧义吗?
96 c++  c  sizeof 

3
是否有机器,其中sizeof(char)!= 1,或者至少CHAR_BIT> 8?
Наэтотвопросестьответына 堆栈溢出нарусском:Кто-нибудьвстречалвсвоейпрактике的sizeof(焦炭)= 1!? 是否有机器(或编译器)在哪里sizeof(char) != 1? C99标准是否说sizeof(char)在标准合规性实施上必须完全为1?如果有,请给我编号和引用。 更新: 如果我有一台不能寻址字节的机器(CPU)(最小读取为4字节,对齐),但是只有4-s字节(uint32_t),则该机器的编译器可以定义sizeof(char)为4吗? sizeof(char)将为1,但char将具有32位(CHAR_BIT宏) Update2: 但是sizeof结果不是BYTES!它是CHAR的大小。char可以是2个字节,或者(可能是)7位? 更新3: 好的。所有机器都有sizeof(char) == 1。但是什么机器CHAR_BIT > 8呢?
93 c  char  standards  sizeof  c99 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.