Τι θα τυπώσει το πρόγραμμα;
#include <stdio.h>
typedef struct {
unsigned char registered : 1;
unsigned char year : 3;
unsigned char grade : 4;
} status;
int main() {
status st = {1, 1, 10};
printf("Status: %u %u %u\n", st.registered, st.year, st.grade);
st.year = 2;
printf("Status: %u %u %u\n", st.registered, st.year, st.grade);
st.year += 7;
printf("Status: %u %u %u\n", st.registered, st.year, st.grade);
return 0;
}
Οι δύο πρώτες γραμμές είναι απλές. Για την τρίτη, σκεφτείτε ποια είναι η μεγαλύτερη τιμή που χωράει σε 3 bits και τι απομένει όταν κρατήσετε μόνο τα 3 χαμηλά bits του αποτελέσματος.
Αριθμός στον οδηγό: Α20.8
(στο κεφάλαιο) ·
Μόνιμο αναγνωριστικό: slides-lec20-bitfield-assign ·
Σύνδεσμος: https://progintro.github.io/study/questions/slides/slides-lec20-bitfield-assign.html ·
Markdown (GitHub)