sizeof

    2热度

    1回答

    我看到了一些直接使用sizeof的代码,并想知道它是否是标准C.令我惊讶的是,它工作得很好。这里有一个例子: #include <stdio.h> #include <string.h> int main() { char buff[255]; printf("size %d\n", sizeof buff); return 0; } Output: s

    3热度

    3回答

    在下面的代码: typedef struct{int data1; int data2} node; node n1; node* n2; sizeof(n1) returns 8 // size of the struct node sizeof(n2) returns 4 // since n2 is a pointer it returns the size of the poin

    0热度

    1回答

    我遇到了一个问题,铛完整插件在vim中。开发系统是Linux/i86_64,但代码基于PowerPC/32。问题是clang和交叉编译器不同意类型的大小。在PowerPC上,sizeof long是4,而在i86_64上是8。 这会导致编译时断言失败,检查某个结构的大小。因此,铛完成只说-- User defined comletion (^U^N^P)并没有别的。如果我删除了编译时断言,一切工作

    1热度

    3回答

    通常的大小,我会用 int size = sizeof(array_name)/sizeof(double) 但是发现双数组的大小,我使用名为“等级”作为一个类中的成员被称为双阵列“成绩” class Grades{ private: double grades[1024]; public: Grades(string gradeList); G

    0热度

    2回答

    我试图理解struct padding。 的下面结构是填充: struct s { int j; char c; int i; }; ==>的sizeof(结构S)= 12 但对于这个结构是不填充。为什么? struct s { char c; } ==>的sizeof(结构S)= 1 OR struct s { short int i; } ==>的sizeof(结构

    0热度

    2回答

    我是C品牌新手,我试图说明int/long/short有多少个字节。请记住,我必须有变量,所以我不能只说sizeof(int)。任何帮助,将不胜感激谢谢! #include <stdio.h> int main() { short* A; int* B; long* C; printf("Size of integer variable = %d bytes\n", sizeof(

    -1热度

    1回答

    在C语言宏用于获取数组元素的数目是众所周知的,看起来是这样的: uint32_t buffer[10]; #define ARRAY_SIZE(x) sizeof(x)/sizeof(x[0]) size_t size = ARRAY_SIZE(buffer); 的问题是,是否有获得数组元素或当它在变量中使用,只返回一个任何通用宏?我的意思是以下使用宏: uint32_t buffe

    1热度

    3回答

    我读这样的回答:C struct memory layout?并很想知道为什么: struct ST { long long ll; char ch2; char ch1; short s; int i; }; 仍然是24个字节而不是16,我期待2 *字符+短+ INT以适应8个字节大小。为什么这样? 编辑: 很抱歉的混乱,我在64位系统上

    3热度

    3回答

    当我做 int k = 9; printf("sizeof k: %zu \n", sizeof (&k)); 我得到的大小8。但是当我做 printf("pointer to k: %p \n", &k); 我得到0x7fff57e3ba24。我可以看到这是12个十六进制数,这意味着(因为1十六进制是4位)指针占用了6个字节的48位。 问题:为什么sizeof打印8指针虽然只有6个字节

    31热度

    4回答

    在C或C++中,当它位于sizeof()运算符中时,不执行增量和减量运算符(++n,--n)。 int n = 100; int size_int = sizeof(++n); std::cout<<n; 我写了这段代码并运行程序。当然,我认为101会显示给我。 但是,n不是101,它是100. 为什么?