¿Cómo debo marcar los tipos en los programas C y C ++?

12

En esta respuesta mía , utilicé _tal final de los tipos, que terminaron en el mejor de los casos, controvertidos. Esta es la práctica que uso en mis proyectos actuales.

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

Se pretendía que fuera coherente con los tipos C de stddef.hlike size_to ptrdiff_t. Sin embargo, de acuerdo con ciertos comentarios en mis preguntas, _tpostfix parece estar reservado para POSIX. ¿Qué debo usar en lugar de _t? ¿O debería seguir usando de _ttodos modos?

Esta pregunta es para C y C ++. Si estos idiomas tienen diferentes convenciones, no dude en responderlas.

Konrad Borowski
fuente
2
Una convención común es tener nombres de clase que se parezcan. En ese punto, ni siquiera necesitas sufijos. (Esto es más común para Java, .net, etc., pero también funciona en C ++.)
cHao
1
en última instancia, esta es una forma de notación húngara. Y esa discusión es interminable. Por mi parte, estoy en contra ahora y voy con la solución de cHao. ¿Por qué? Debido a que usé la notación húngara durante aproximadamente 4 años para todo, luego decidí hacer un proyecto sin él y no me lo perdí en absoluto. Y no perdió el tiempo en eso. Así que lo dejé caer por completo ya que aparentemente no tenía ningún valor para mí. Y nunca miré hacia atrás.
stijn
1
Consulte esta pregunta para identificadores reservados (incluido _t) stackoverflow.com/a/228797/14065
Martin York

Respuestas:

16

No hay consenso dentro de las comunidades C y C ++ con respecto a los tipos de nombres.

Aunque el _tsufijo está reservado por POSIX , algunos abogarán por usar el _tsufijo también para sus propios tipos, mientras que otros argumentarán igualmente que no debe tentar al destino arriesgando nombres duplicados con POSIX.

Las convenciones de nomenclatura alternativas sugieren el uso de un prefijo para tipos, como Co T.

Bart van Ingen Schenau
fuente
16

Encuentro los sufijos bastante feos y, por lo tanto, evito, _tetc. Una buena alternativa es usar una letra mayúscula para comenzar los nombres de tipo, así que Pointen tu ejemplo anterior.

William Morris
fuente
3
y me parece agradable tener un estilo DIFERENTE de los tipos C estándar, así que leyendo el código puede encontrar fácilmente qué es del programa cliente y qué es la API
Nikko
1
También mi técnica favorita. Los tipos tienen una letra mayúscula inicial. Todos los demás identificadores no son tipos y, por lo tanto, se ven fácilmente.
Martin York
Siempre pensé que se veía bastante feo también. Es bueno ver que los demás están de acuerdo conmigo.
syb0rg
Solo uso PascalCase para los tipos de puntero (Debido a lenguajes como C # y Java donde PascalCase significa clase, es decir, referencia a datos), pero entiendo de dónde vienes.
yyny
1

Depende de ti. A menos que haya un conflicto con las palabras reservadas, está listo para comenzar. Sin embargo, considere un escenario en el que trabaja en una empresa y varias personas acceden a la misma base de código, y su código llega a una persona que no conoce su hábito. Él / Ella puede asumir que es un tipo reservado, especialmente si escribes algo como point_t. Por lo tanto, manténgalo más simple, por ejemplo, point es más simple que point_t. Y si desea agregarle algo, agregue sus iniciales de nombre.

kamran
fuente