2012-08-09 4 views
5

나는 형식 정의가충돌하는 선언

typdef unsigned int size_t; 

그것이와 충돌로 내 코드에서 정의한 stddef의

typedef __SIZE_TYPE__ size_t; 

나는이 문제를 해결하는 방법을 확실 해요하지만 여전히에서 size_t로 유지하고 싶습니다 내 코드.

+3

선택 다른 이름을 사용하거나 네임 스페이스에 넣으십시오. – jrok

+2

다른 이름을 선택하십시오. –

+2

다른 이름을 지정하십시오. –

답변

17

세 가지 옵션 :

1) 다른 이름을 선택, 난 당신이 이미 가지고 생각합니다.

namespace X 
{ 
    typedef long size_t; 
} 

당신은 해고 보장

X::size_t x; 

3) 미운과 유형, 그리고 나을 downvoted :

2)는 namespace 사용

typedef unsigned int my_size_t; 
#define size_t my_size_t 
+0

AHH. 나는 네 답을 제일 좋아한다. 문제는 이것이 프로젝트를위한 것이며 내 코드의 size_t typedef 이름은 변경할 수없는 것입니다. 감사! – user1496542

+0

@ user1496542 확인, 수정 된 답변보기 –

+0

하하하. 네임 스페이스 대답은 여전히 ​​나에게 이긴다. 그러나 다시 감사한다! :) – user1496542

2

표준 헤더 중 하나에있는 유형을 다시 정의하는 것은 좋지 않은 생각 일 수 있습니다. 무엇을 성취하려고합니까? 왜 표준 size_t 정의를 사용하고 싶지 않은가?

+0

이것은 "다른 이름 선택"이라는 주석이어야합니다. : P – jrok

+0

LOL, 네 말이 맞아, 그건 사람들이 취한 방향 인 것 같다. – jwismar

+0

할 수만 있다면 그 이름을 바꿀 수없는 프로젝트를위한 것입니다. 제안을 주셔서 감사합니다 :) – user1496542