Code:Ai đó có thể giải thích các mã C này?
enum {a, b};
int different(void)
{
if (sizeof (enum {b, a}) != sizeof (int))
return a; // a == 1
return b; // b == 0 in C89, b == 1 in C99
}
Làm thế nào a==1
và b==0
trong c89
và b==1
trong c99
?
Tôi muốn biết làm thế nào giá trị của a
lại a
là 1 và trả lại giá trị của b
thay đổi trong c89
và c99
?
Vâng, bạn có thể thêm chi tiết? Hiện tại tôi không thể hiểu câu hỏi của bạn một cách chính xác. –
IIRC, do đó, thực hiện các C khác. –
@AshishAhuja sizeof (enum {b, a}) là 4 và sizeof (int) cũng là 4 có nghĩa là nếu (4! = 4) sau đó trả về a ;, giá trị của a là 1 như thế nào? – user123456987