2012-08-09 98 views
5

我已經在我的代碼定義爲衝突的聲明

typdef unsigned int size_t; 

它與衝突的一個typedef stddef的

typedef __SIZE_TYPE__ size_t; 

我不確定如何解決這個問題,但仍希望繼續爲size_t在我的代碼。

+3

選擇一個不同的名稱或放在名稱空間中。 – jrok 2012-08-09 18:56:11

+2

只需選擇一個不同的名稱。 – 2012-08-09 18:56:34

+2

選擇一個不同的名稱。 – 2012-08-09 18:56:45

回答

17

三個選項:

1)選擇一個不同的名字,我想你已經明白了。

2)使用namespace

namespace X 
{ 
    typedef long size_t; 
} 

和類型

X::size_t x; 

3)醜陋的,保證讓你解僱,我downvoted:

typedef unsigned int my_size_t; 
#define size_t my_size_t 
+0

AHH。我最喜歡你的答案。問題是這是一個項目,我的代碼中的size_t typedef名稱是我無法更改的。謝謝! – user1496542 2012-08-09 19:03:50

+0

@ user1496542好的,請參閱編輯答案。 – 2012-08-09 19:09:04

+0

哈哈哈好吧。命名空間的答案仍然爲我贏得勝利,但再次感謝! :) – user1496542 2012-08-09 19:16:15

2

嘗試重新定義其中一個標準標題中的類型可能是個壞主意。你想達到什麼目的?爲什麼你不想使用標準的size_t定義?

+0

這應該是一個評論,說「選擇一個不同的名字。」 :P – jrok 2012-08-09 18:59:00

+0

大聲笑,你是對的,這似乎是人們採取的方向。 – jwismar 2012-08-09 19:00:44

+0

我會如果我能,但這是一個項目,我不能改變這個名字。感謝您的建議:) – user1496542 2012-08-09 19:04:38