Я пишу приложение C ++ в Visual Studio 2008. У него много определенных структур в нескольких заголовочных файлах, таких как:
#pragma pack( push , 1 ) // align on a 1-byte boundary
typedef struct myStruct_tag
{
/* ... */
} myStruct_t;
#pragma pack( pop ) // end 1-byte boundary alignment
В исходном файле эти определенные структуры используются какнапример:
void MyFunc( void )
{
myStruct_t * myStruct = NULL;
myStruct = (myStruct_t *)malloc( sizeof(myStruct_t) );
/* and so forth and so on... */
}
Даже если он успешно компилируется с 0 ошибками и 0 предупреждениями, иногда, когда я щелкаю правой кнопкой мыши по пользовательскому типу данных (например, в MyFunc
), он выдает мне ошибку:
Символ 'myStruct_t' не определен.
Затем я нажимаю OK, чтобы закрыть диалоговое окно, и нажимаю Ctrl + Alt + F7 , чтобы перестроить решение.Он собирается без каких-либо ошибок или предупреждений, поэтому я знаю, что он находит определение myStruct_t
при компиляции, но не может найти его, когда я пытаюсь использовать функцию Перейти к определению .Единственное, что приходит мне в голову, это то, что в этом приложении много определенных структур, выровненных по одному байту, но это не должно иметь значения.Кто-нибудь знает, как это исправить?