次のプログラムの場合、B7が上位B0が下位になると思っていたのですが、実行してみると
01001000になっています。コンパイラによるのでしょうか?
使用したのは、フリーのBorland C++ Compiler 5.5です。
#include<stdio.h> struct st_p1 { // struct P1 unsigned char DDR; // P1DDR char wk; // union { // P1DR unsigned char BYTE; // Byte Access struct { // Bit Access unsigned char B7:1; // Bit 7 unsigned char B6:1; // Bit 6 unsigned char B5:1; // Bit 5 unsigned char B4:1; // Bit 4 unsigned char B3:1; // Bit 3 unsigned char B2:1; // Bit 2 unsigned char B1:1; // Bit 1 unsigned char B0:1; // Bit 0 } BIT; // } DR; // }; main() { struct st_p1 P1; P1.DR.BYTE=0x12; printf("%x",P1.DR.BIT.B7); printf("%x",P1.DR.BIT.B6); printf("%x",P1.DR.BIT.B5); printf("%x",P1.DR.BIT.B4); printf("%x",P1.DR.BIT.B3); printf("%x",P1.DR.BIT.B2); printf("%x",P1.DR.BIT.B1); printf("%x",P1.DR.BIT.B0); return; }