variable una tamaño saber qué length hace como arreglo array c++ c sizeof

una - C vs C++ sizeof



sizeof c++ (1)

Esta pregunta ya tiene una respuesta aquí:

Acabo de encontrar este simple fragmento de código y me pregunto por qué el resultado de este programa cuando es compilado por un compilador de C es 4 y cuando es compilado por un C ++ uno es 8 .

#include <stdio.h> int x; int main(){ struct x {int a; int b;}; printf("%d", sizeof(x)); return 0; }

La salida de C ++ es racional ( 8 = 4 + 4 = sizeof(xa) + sizeof(xb) ), pero la salida de C no lo es. Entonces, ¿cómo funciona sizeof en C?

Parece que C prefiere las variables globales por encima de las locales. ¿Es correcto?


En C, una definición de struct x { int a; int b; }; como struct x { int a; int b; }; struct x { int a; int b; }; no define un tipo x , define un tipo struct x . Entonces, si eliminas el int x; Global, encontrarás que la versión C no compila.