Udostępnij za pośrednictwem


Ostrzeżenie kompilatora (poziom 1 i poziom 2) C4091

"słowo kluczowe": ignorowane po lewej stronie "typu", gdy żadna zmienna nie jest zadeklarowana

Kompilator wykrył sytuację, w której użytkownik prawdopodobnie zamierzał zadeklarować zmienną, ale kompilator nie mógł zadeklarować zmiennej.

Przykłady

Atrybut __declspec na początku deklaracji typu zdefiniowanego przez użytkownika ma zastosowanie do zmiennej tego typu. C4091 wskazuje, że zmienna nie jest zadeklarowana. Poniższy przykład generuje kod C4091.

// C4091.cpp
// compile with: /W1 /c
__declspec(dllimport) class X {}; // C4091

// __declspec attribute applies to varX
__declspec(dllimport) class X2 {} varX;

// __declspec attribute after the class or struct keyword
// applies to user defined type
class __declspec(dllimport) X3 {};

Jeśli identyfikator jest typedef, nie może być również nazwą zmiennej. Poniższy przykład generuje kod C4091.

// C4091_b.cpp
// compile with: /c /W1 /WX
#define LIST 4
typedef struct _LIST {} LIST;   // C4091