C 및 C ++ 프로그램에서 유형을 어떻게 표시해야합니까?


12

에서 내이 대답 , 내가 사용하는 _t최상의 논란 종료 유형의 끝에서. 이것이 현재 프로젝트에서 사용하는 관행입니다.

typedef struct {
    int x;
    int y;
} point_t;

이것은 stddef.hlike size_t또는의 C 유형과 일치하도록 의도되었습니다 ptrdiff_t. 그러나 내 질문에 대한 특정 의견에 따르면 _tpostfix는 POSIX 용으로 예약 된 것으로 보입니다. 대신에 무엇을 사용해야 _t합니까? 아니면 _t어쨌든 계속 사용해야 합니까?

이 질문은 C와 C ++ 모두에 대한 것입니다. 이러한 언어에 다른 규칙이있는 경우 자유롭게 대답하십시오.


2
일반적인 규칙 중 하나는 클래스 이름이 LookLikeThis입니다. 이 시점에서 접미사가 필요하지 않습니다. (이것은 Java, .net 등에서 더 일반적이지만 C ++에서도 작동합니다.)
cHao

1
궁극적으로 이것은 헝가리 표기법의 한 형태입니다. 그리고 그 토론은 끝이 없습니다. 나는 지금 그것에 반대하고 cHao의 솔루션으로 간다. 왜? 헝가리어 표기법을 4 년 동안 모든 것에 사용했기 때문에 프로젝트없이 프로젝트를 수행하기로 결심하고 전혀 놓치지 않았습니다. 그리고 시간을 낭비하지 않았습니다. 그래서 나는 그것이 나에게 전혀 가치가 없었기 때문에 그것을 완전히 떨어 뜨 렸습니다. 그리고 나는 뒤돌아 보지 않았다.
stijn

1
예약 식별자 (포함 _t)에 대해서는이 질문을 참조하십시오. stackoverflow.com/a/228797/14065
Martin York

답변:


16

C 및 C ++ 커뮤니티 내에서 이름 지정 유형과 관련하여 합의가 없습니다.

_t접미사가 실제로 POSIX의해 예약되어 있지만 , 일부는 _t자신의 유형에 대한 접미사 사용을 옹호하는 반면, 다른 사람들은 POSIX와 중복되는 이름으로 위험을 감수하여 운명을 유혹해서는 안된다고 주장합니다.

대체 명명 규칙은 다음과 같은 유형의 접두사를 사용하는 것이 좋습니다 C또는 T.


16

나는 접미사가 오히려 못 생겨서 등을 피하는 _t것이 좋다. 좋은 대안은 Point위의 예에서 대문자를 사용하여 유형 이름을 시작하는 것이다.


3
표준 C 유형과 다른 스타일을 갖는 것이 좋으므로 코드를 읽으면 클라이언트 프로그램에서 무엇이고 API가 무엇인지 쉽게 찾을 수 있습니다
Nikko

1
또한 내가 좋아하는 기술. 유형은 초기 대문자입니다. 다른 모든 식별자는 유형이 아니므로 쉽게 볼 수 있습니다.
Martin York

나는 항상 그것이 너무 못 생겼다고 생각했다. 다른 사람들이 나와 동의한다는 것을 알게되어 반갑습니다.
syb0rg

포인터 유형 (PascalCase가 클래스, 즉 데이터 참조를 의미하는 C # 및 Java와 같은 언어 때문에)에 대해서만 PascalCase를 사용하지만 어디에서 왔는지 알 수 있습니다.
yyny

1

당신에게 달렸습니다. 예약어와 충돌하지 않는 한 잘 가십시오. 그러나 회사에서 일하고 있고 여러 사람이 동일한 코드베이스에 액세스하는 시나리오를 생각해보십시오. 코드는 습관을 모르는 사람에게 전달됩니다. point_t와 같은 것을 작성합니다. 예를 들어 point는 point_t보다 간단합니다. 그리고 무언가를 추가하려면 이름 이니셜을 추가하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.