Tôi đang sử dụng mặc định C trong gcc.C khởi tạo cấu trúc const thành viên với biến const hiện tại
Mã của tôi:
typedef struct _OpcodeEntry OpcodeEntry;
//
struct _OpcodeEntry
{
unsigned char uOpcode;
OpcodeMetadata pMetadata;
};
//
const OpcodeMetadata omCopyBytes1 = { 1, 1, 0, 0, 0, 0, &CopyBytes };
const OpcodeEntry pOpcodeTable[] =
{
{ 0x0, omCopyBytes1 },
};
Lỗi:
error: initializer element is not constant
error: (near initialization for 'pOpcodeTable[0].pMetadata')
Nếu tôi thay đổi omCopyBytes1
thành những gì nó thực sự được đặt trong dòng trên, thì mã sẽ biên dịch tốt. Tôi đang làm gì sai?
Các biểu thức liên tục có thực sự cần thiết để khởi tạo tất cả các tập hợp trong C99 không? Tôi không thấy bất cứ điều gì trong phần 6.7.8 của tiêu chuẩn C99 nói như vậy (khác với đối tượng của thời gian lưu trữ tĩnh). – jamesdlin