小编Moh*_*lar的帖子

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++中的空结构

为什么C中的空结构违反约束?为什么在C++中更改此规则?

有历史原因吗?

c c++ struct rationale

7
推荐指数
1
解决办法
2003
查看次数

标签 统计

c ×2

c++ ×2

incompatibility ×1

rationale ×1

struct ×1