2016-11-23 110 views
0

我想明白了這個錯誤:語法錯誤之前「布爾」,在下面的代碼:爲什麼我得到這個編譯器錯誤?

typedef struct hdate{ 
    date_arc_u date; 
    unsigned short time; 
    bool test; 
}PACKED_ST horodate_a 

當我改變布爾爲另一種類型是沒有錯誤。 我已經在代碼的其他部分使用了bool而沒有錯誤。

我不明白,在這裏這個錯誤....

+0

聲明ü可以張貼一些更多的代碼。一個問題可能是由於「} PACKED_ST horodate_a」,你是typedef並同時創建新變量。 – Sumeet

+0

讓我猜測.. C90? –

回答

0

這可能是因爲你正在編寫C代碼,以及bool類型不存在C.你的文件擴展名可能是.C ,而不是.cpp,你的代碼看起來像是用C編寫的。

+0

謝謝,我沒有注意到有一些C擴展名的文件。我改變了它,它工作。 – Harvey

0

可能你的C編譯器不知道bool類型。

你可以試試:

1 - 這包括在第一#include <stdbool.h>

2-起初typedef enum bool { false, true };

+2

2並不是一個好的解決方案。添加stdbool的原因是爲了防止每個人都定義自己的兼容性噩夢。 – StoryTeller

+0

謝謝,但我使用CPP(除了這是一個C擴展名的文件) – Harvey