Οδηγός Μελέτης - Εισαγωγή στον Προγραμματισμό

Α19.7 · Padding: το μέγεθος ενός pixel

Διάλεξη 19, διαφάνειες 22–24 · Δυσκολία ★★☆ · trace · Κεφάλαια: 19

Τι θα τυπώσει αυτό το πρόγραμμα (μεταγλώττιση με 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)