Τι θα τυπώσει αυτό το πρόγραμμα (μεταγλώττιση με gcc -m32 -o struct2 struct2.c);
#include <stdio.h>
int main() {
struct pixel_tag {
char red;
char green;
char blue;
int alpha;
} pixel = {0xFF, 0xFF, 0xFF, 42};
printf("%zu\n", sizeof(pixel));
return 0;
}
Τα πεδία πιάνουν 7 bytes, αλλά η απάντηση δεν είναι 7. Σκεφτείτε σε ποια διεύθυνση
προτιμά ο επεξεργαστής να ξεκινά ένα int (memory alignment).
Αριθμός στον οδηγό: Α19.7
(στο κεφάλαιο) ·
Μόνιμο αναγνωριστικό: slides-lec19-padding-pixel ·
Σύνδεσμος: https://progintro.github.io/study/questions/slides/slides-lec19-padding-pixel.html ·
Markdown (GitHub)