2013-08-11 15 views
0

구조물에 대해서는 typedef을 사용하지 않는 이유가 있습니까?구조를 typedef하지 않는 이유가 있습니까?

좋아 : 대신

typedef struct{ 
    int member1; 
    unsigned long member2; 
    char *member3; 
} myType; 

:

struct myType{ 
    int member1; 
    unsigned long member2; 
    char *member3; 
}; 
+1

개인 선택. typedef less typing –

답변

1

타입 정의 디버거는 점에 가입 할만큼 똑똑하지 않는 한 MYTYPE의 인스턴스가 anonymous type로 표시하기 때문에, 어려운 디버깅 할 수 있습니다. 안전을 위해, 둘 다 일을 선호 :

typedef struct tag_myType { 
    ⋮ 
} myType; 

내가 하나 또는 기타를 포기해야한다면, 그러나, 나는 같은 이유로, 사방 struct myType를 작성 살 것입니다.

형식 정의 키워드로
+0

'_t'는 기술적으로 그것을 예약 된 이름으로 만듭니다. 또한 불필요합니다. 'typedef struct myType {...} myType;'은 잘 동작합니다. –

+0

@OliCharlesworth : 고마워, 나는 (아이러니하게도, 나는 보통'tag_ ... '을 사용한다; 나는 왜 그것을 여기에 바꿨는지 모르겠다.) 몰랐다. 당신이 같은 이름을 사용할 수 있다는 것을 알고 있지만, 나는 항상 그렇게 불편했습니다. 나는 그것이 좋은 생각이 아니라는 모호한 감각 이상으로 이끌 리고 있음을 고백해야한다. –

1

당신이

myType x;

을 쓸 수 있습니다 그없이 입력해야 :

struct myType x;

을 따라서, 당신은 더 적은 입력하고 당신이 큰 프로그램을 작성하는 경우,이입니다 필요한.

초 Typedef를 사용하면 코드 사용자로부터 구현을 숨길 수 있다고 주장하는 사람들이 있습니다. 예를 들어, 정의 방법을 알 필요없이 size_t 유형을 사용합니다.

관련 문제