Tôi nghĩ rằng tôi đã đọc ở đâu đó nó là bất hợp pháp để lấy địa chỉ của một giá trị enum trong C (giá trị enum không phải là lvalues, tuy nhiên, tôi không thể tìm thấy bất kỳ thông tin trên điều này bây giờ). Điều đó có đúng không và nếu có thì tại sao?Vị trí bộ nhớ của giá trị enum trong C
Edit:
Dưới đây là một ví dụ mà làm rõ những gì tôi có nghĩa là bởi "giá trị enum" ở trên. Tôi có nghĩa là lấy địa chỉ của first_value
dưới đây, không lấy địa chỉ của một thể hiện thực tế của một enum:
enum myenum
{
first_value,
second_value
};
Enum đó chỉ tồn tại trong bộ nhớ của trình biên dịch chứ không phải tệp thực thi. Bạn sẽ phải tạo một thể hiện của enum để nó xuất hiện trong tệp thực thi. – Anonym