필자의 삶에서 typedef를 C++ 문으로 변환하는 데 사용되는 규칙은 무엇인지 잘 설명 할 수 없습니다. 내가 이해하는 간단한 경우들. 그러나 Danny Kalev에서이 사항을 고려하십시오C++ typedef 구문 규칙
typedef char * pstr;
int mystrcmp(const pstr, const pstr); //wrong!
대니 Kalev은 다음 글을 참고하세요 :
이시퀀스 CONST의 pstr 실제로 숯불 *의 CONST (CHAR하는 CONST 포인터)를 의미한다 하지 CONST의 char * (CONST 문자에 대한 포인터.
난 아무데도 "const를 pstr"가 "의 char *에 const를"로 변환 될 것입니다 이유를 설명 할 수있는 규칙을 찾을 수 없습니다. 어떤 도움
감사합니다. pstr
이 char*
의 별칭이고 당신이 할 때 const pstr
조금 const (char*)
하지 (const char)*
말처럼 때문에
논리적 인 것 같습니다. 'pstr' 타입을 char에 대한 포인터로 정의하고 있습니다. 그래서'const pstr'는 char, const char * const'에 대한 포인터입니다. – arrowd
간단한 어림짐작. 'typedef'! ='#define '입니다. 설명하는 것을 원하면 매크로를 사용해야합니다. –
post-const 형식을 일관되게 사용하면 더 많은 의미가 있습니다. 'pstr const' =='char * const'. pre-const 형식은 예외이므로 상황을 혼란스럽게 할 수 있습니다. –