2016-04-29 8 views
0

Может ли кто-нибудь объяснить мне ошибку PC-Lint. 38 с примером ...Смещение символа «Символ» не соответствует

38 Offset of symbol 'Symbol' inconsistent (Location) -- A 
     member of a class or struct appears in a different 
     position (offset from the start of the structure) than an 
     earlier declaration. This could be caused by array 
     dimensions changing from one module to another. 

Я продолжаю получать ошибки, как ...

Offset of symbol 'ClassX::access1' inconsistent (conflicts with line 92, file U:\ABC\ABCApp.h, module U:\ABC\ABCApp.cpp) 

где access1 переменная член перечислимого типа ACCESS объявлен в ClassX. И это перечисление ACCESS определено в другом файле заголовка access.h. access.h включен в stdafx.h.

typedef enum 
{ 
    ACCESS_NONE  = 0, 
    ACCESS_READ  = 1 
} ACCESS; 

Не знаете, в чем проблема. Где непоследовательность?

ответ

0

Это не определение ACCESS, это проблема, но позиция access1 Участник в классе ClassX. У вас либо есть двойное объявление класса, либо (скорее всего) какой-то мошенник #pragma pack, который действует при компиляции одного .cpp, но не действует при компиляции другого.