C mã chokhông tương thích giữa C và C++
#include <stdio.h>
int x = 14;
size_t check()
{
struct x {};
return sizeof(x); // which x
}
int main()
{
printf("%zu",check());
return 0;
}
cho 4 như đầu ra trong C tình hình thực hiện 32 bit của tôi trong khi trong C++ mã
#include <iostream>
int x = 14;
size_t check()
{
struct x {};
return sizeof(x); // which x
}
int main()
{
std::cout<< check();
return 0;
}
đầu ra 1. Sự khác biệt Tại sao như vậy?
Các bản sao có thể có: http://stackoverflow.com/questions/3451266/understanding-sizeofchar-in-32-bit-c-compilers http://stackoverflow.com/questions/119123/why-isnt-sizeof-for -a-struct-equal-to-the-sum-of-sizeof-of-each-thành viên – phooji
@phooji: Không, đó không phải là một bản sao. –
@ Saurabh: Bạn có thể đúng - các câu hỏi không bao gồm chính xác cùng một nền tảng, nhưng tôi nghĩ rằng câu trả lời là thích hợp (xem câu trả lời của Prasoon và cũng là bình luận của tôi cho câu trả lời của bạn). – phooji