2010-11-04 190 views
0

當在此代碼段中找不到標識符時,出現錯誤。請幫助什麼是錯誤C中的結構聲明

typedef struct 
{ 
    Int32 frameID; 
    Int32 slotIndx; 
    Int32 symNumber; 

}ControlList, *controlListPtr; 

感謝

+1

您的標題說'C',但它被標記爲'C++'。哪一個?此外,什麼是「標識符未找到」錯誤?什麼是你得到的確切的編譯器錯誤信息? – 2010-11-04 07:06:50

+0

什麼是實際錯誤?是否定義了「Int32」? – wj32 2010-11-04 07:07:03

回答

1

我不認爲Int32是的buildin類型。請嘗試#include<stdtype.h>並使用int32代替?

+0

'stdtype.h'和'int32'?你不是指'stdint.h'和'int32_t'嗎? – 2010-11-04 07:14:52

+0

@in silico,你是對的 – 2010-11-04 08:11:05

3

可能是找不到標識符Int32。試試這個:

#include <stdint.h> 
typedef int32_t Int32; 

typedef struct 
{ 
    Int32 frameID; 
    Int32 slotIndx; 
    Int32 symNumber; 
} ControlList, *controlListPtr; 
0

Int32是不是內置類型。當你使用Int32作爲結構成員變量的類型時,你會得到「標識符未找到」錯誤。很可能,Int32在您的項目的其他地方定義。如果這是一個頭文件,則需要在您使用Int32的文件中使用#include頭文件。如果Int32未在任何地方定義,則需要使用對您有意義的內容來定義它。

+0

我有#include DataTypes.h文件,我在那裏做typedefs。所以這不是問題。 我在調試過程中遇到了這個問題,請看窗口。我發現其他變量是 可見。只有結構不是。 當我做了以下,我看到窗口中的結構沒有錯誤「標識符未找到」 controlListPtr-> frameID = 0; 我不知道爲什麼 – user437777 2010-11-04 11:08:41

+0

'* controlListPtr'是一個類型。你不能像那樣使用它。你可以嘗試:'ControlList cl; controlListPtr cp = &cl; cp-> frameID = 10; cout << cp-> frameID << endl;' – Donotalo 2010-11-04 11:19:47