Avatar ·

¿Qué dice el estándar de C++ sobre el tamaño de los tipos int, long y long long?

¡Hola a todos! Acabo de empezar a aprender C++ y me encontré con una confusión. Sé que en diferentes compiladores y plataformas, los tamaños de los tipos enteros pueden variar. Escribí un código simple para verificar esto en mi máquina (Windows, MinGW): ```cpp #include using namespace std; int main() { cout << "Size of int: " << sizeof(int) << " bytes" << endl; cout << "Size of long: " << sizeof(long) << " bytes" << endl; cout << "Size of long long: " << sizeof(long long) << " bytes" << endl; return 0; } ``` En mi computadora obtuve: int = 4 bytes, long = 4 bytes, long long = 8 bytes. Pero en internet leí que en Linux x86_64 long puede ser de 8 bytes. Mi amigo dijo que en sistemas antiguos de 16 bits, int era de 2 bytes. Me interesa saber: ¿qué garantiza realmente el estándar de C++? ¿Puedo confiar en que int siempre será de 4 bytes? ¿Por qué long e int son iguales en mi Windows, pero diferentes en Linux? ¿Y cómo escribir código portable si los tamaños varían?