El código C dadaIncompatibilidad entre C y C++ código
#include <stdio.h>
int x = 14;
size_t check()
{
struct x {};
return sizeof(x); // which x
}
int main()
{
printf("%zu",check());
return 0;
}
da 4 como salida en C en mi aplicación de 32 bits, mientras que en C++ el código
#include <iostream>
int x = 14;
size_t check()
{
struct x {};
return sizeof(x); // which x
}
int main()
{
std::cout<< check();
return 0;
}
salidas 1. ¿Por qué tanta diferencia?
Posibles duplicados: 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-member – phooji
@phooji: No, eso no es un duplicado. –
@Saurabh: Puede que tenga razón, las preguntas no cubren exactamente el mismo terreno, pero creo que las respuestas son pertinentes (consulte la respuesta de Prasoon y también mi comentario a su respuesta). – phooji