相关疑难解决方法(0)

为什么structof sizeof不等于每个成员的sizeof总和?

为什么sizeof操作员返回的结构尺寸大于结构成员的总尺寸?

c c++ struct c++-faq sizeof

644
推荐指数
11
解决办法
18万
查看次数

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

在C++中sizeof('a') == sizeof(char) == 1.这具有直观意义,因为它'a'是一个字符文字,并且sizeof(char) == 1由标准定义.

然而,在C中sizeof('a') == sizeof(int).也就是说,看起来C字符文字实际上是整数.有谁知道为什么?我可以找到很多关于这个C怪癖的提及,但没有解释为什么它存在.

c c++ sizeof char

101
推荐指数
7
解决办法
2万
查看次数

C和C++代码之间不兼容

给定的C代码

#include <stdio.h>
int x = 14; 
size_t check()
{
   struct x {};
   return sizeof(x); // which x
}
int main()
{
    printf("%zu",check()); 
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

在我的32位实现上给出4作为C的输出,而在C++中给出代码

#include <iostream>
int x = 14;    
size_t check()
{
   struct x {};
   return sizeof(x); // which x    
}
int main()
{
    std::cout<< check(); 
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出1.为何如此差异?

c c++ incompatibility

17
推荐指数
3
解决办法
809
查看次数

C和C++在sizeof('x')上的差异

可能重复:
为什么C字符文字的内部而不是字符?

为什么在使用C时sizeof('x')返回4但sizeof('x')在C++中返回1?

C++通常只是C的超集,所以为什么这两个结果有所不同?

编辑 只是进一步澄清.这似乎是标准委员会的刻意举动,我认为如果没有充分的理由,就不会改变'x'的大小.我对原因感兴趣.

c c++

8
推荐指数
3
解决办法
2503
查看次数

标签 统计

c ×4

c++ ×4

sizeof ×2

c++-faq ×1

char ×1

incompatibility ×1

struct ×1