Ehm .. I niby”o choć modyfikatory jak długi/krótkim powiększa/zmniejsza ilość pamięci przydzielonej kiedy zmienna są tworzone, ale ...Dlaczego "long int" ma taki sam rozmiar jak "int"? Czy ten modyfikator działa w ogóle?
#include <stdio.h>
#define test_int int
#define long_int long int
#define long_long_int long long int
void main()
{
printf("%i\n", sizeof (test_int)); //output 4
printf("%i\n", sizeof (long_int)); //output 4. Why? wasn't I modified it's size?
printf("%i\n", sizeof (long_long_int)); //output 8
}
Z nieznanych powodów, drukuje rozmiar int i długi int jako taki sam. Używam edycji ekspresowej vC++ 2010. Niestety, trudno znaleźć odpowiedź w google, zawsze pokazuje długie i int jako osobne typy.
Dlaczego * nie powinny * rozmiary są takie same ?! Typy są różne, tylko to się liczy. Każdy typ może reprezentować zestaw wartości określonych przez normę, ale za darmo można reprezentować więcej. –
Co znaczy więc ** długi ** modyfikator? Czy nie powinno się zwiększać ilości przydzielonej pamięci? – Kosmos
Nic z tego nie ma nic wspólnego z "pamięcią" lub "przydziałem", a "długie" nie jest "modyfikatorem". Raczej "int" i "long int" to dwa różne typy. Obie reprezentują liczby całkowite. –