1. 程式人生 > >struct 結構體“重定義;不同的基型別”

struct 結構體“重定義;不同的基型別”

今天遇到這麼一個問題,一個結構體編譯報錯,“重定義;不同的基型別”,這個結構體在一個頭檔案中定義,在兩個cpp檔案中包含該標頭檔案,就報這個錯誤,結構體的定義形式為:

 

 
  1. typedefine struct strct{

  2. int x;

  3. int y;

  4. } stt;

 

將結構體的定義形式改為如下方式,錯誤排除:

 
  1. struct stt{

  2. int x;

  3. int y;

  4. };

分析:第一種定義方式為C語言定義,第二種為C++定義,C++ struct 等同於類,因此第二種形式相當於是一種宣告,所以不會報錯,而C語言則會報重定義錯誤。