dlaczego u8 u16 u32 u64 jest używane zamiast unsigned int w programowaniu jądra
Widzę, że kod jądra używa typów danych u8 u16 u32 u64. Zastanawiam się, dlaczego należy używać
u8lub
u16lub
u32lub
u64zamiast
unsigned int?
Nie znaleziono powiązanych wyników
Zaproszony:
Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się
2 odpowiedzi
Anonimowy użytkownik
Potwierdzenie od:
Jeśli chodzi o vs , dzieje się tak po prostu dlatego, że Linux poprzedzał i był dostępny w języku C , który technicznie jest C99-izmem, ale z mojego doświadczenia wynika, że jest dostępny na większości nowoczesnych kompilatorów, nawet w ich trybach ANSI-C/C89.
Anonimowy użytkownik
Potwierdzenie od:
ta odpowiedź
https://stackoverflow.com/a/30896945/1582649
:
oznacza wartość „bez znaku 64 bity”, więc w zależności od architektury, w której kod będzie uruchamiany/kompilowany, musi być zdefiniowany inaczej, aby w rzeczywistości miał 64 bity.
Na przykład na komputerze x86 długość wynosi 64 bity, więc dla tej maszyny można zdefiniować w następujący sposób:
To samo dotyczy . Na komputerze x86 długość wynosi 32 bity, więc dla tego komputera można zdefiniować w następujący sposób:
Zwykle deklaracja dla tych typów znajduje się w pliku , który odpowiada architekturze, w której kompilujesz kod źródłowy.