Я имею следующую структуруНКУ предупреждают о «неназванных структурах/объединении, который не определяет экземпляров», но структура имеет имя
typedef struct VMCS
{
uint32_t revision;
uint32_t abortValue;
} __attribute__ ((packed)) VMCS;
, когда я пытаюсь скомпилировать мой код я получаю это предупреждение от ССЗА
warning: unnamed struct/union that defines no instances
, за которым следует куча ошибок, вызванных неопределенностью VMCS. Код, предшествующий этому, очень безобидный, состоящий из включения stdint.h и ряда записей #define. Кажется, что это не может привести к ошибкам, которые могут повлиять на структуру.
Действительно ли 'VMCS' определяется как пустой макрос? Это определенно звучит так, как есть. – AnT
Одним из немногих общепринятых соглашений об именах в C является использование имен всех прописных букв только для макросов и _enum-constants_. Измените имена и повторите попытку. В качестве альтернативы вы можете проверить вывод препроцессора. – Olaf