Je viens de tomber sur ce simple extrait de code et je me demande pourquoi la sortie de ce programme lorsqu'il est compilé par un compilateur C est - 4
et quand il est compilé en C++ on est 8
.
#include <stdio.h>
int x;
int main(){
struct x {int a; int b;};
printf("%d", sizeof(x));
return 0;
}
Sortie C++ est rationnel (8 = 4 + 4 = sizeof(x.a) + sizeof(x.b)
), mais la production de C ne l'est pas. Alors, comment est - sizeof
de travail en C?
Semble C préfère les variables globales de plus de locaux. Est-il juste?