¿Hay alguna manera de aplicar el molde explícito para los typedefs del mismo tipo? Tengo que lidiar con utf8 y algunas veces me confundo con los índices para el recuento de caracteres y el recuento de bytes. Por lo tanto, sería bueno tener algunos typedefs:Imponer comprobación de tipo fuerte en C (rigurosidad de tipo para typedefs)
typedef unsigned int char_idx_t;
typedef unsigned int byte_idx_t;
Con el añadido de que necesita una conversión explícita entre ellos:
char_idx_t a = 0;
byte_idx_t b;
b = a; // compile warning
b = (byte_idx_t) a; // ok
Sé que tal característica no existe en C, pero tal vez usted conoce un truco o una extensión de compilación (gcc preferible) que hace eso.
EDITAR todavía no me gusta mucho la notación húngara en general. No pude usarlo para este problema debido a las convenciones de codificación del proyecto, pero lo usé ahora en otro caso similar, donde también los tipos son iguales y los significados son muy similares. Y debo admitirlo: ayuda. Nunca iría y declararía cada entero con una "i" inicial, pero como en el ejemplo de Joel para tipos superpuestos, puede salvar vidas.
Hay otro artículo muy bueno (Aunque no estoy de acuerdo con prohibir goto :)) de [Joel] (http://www.joelonsoftware.com/) llamado [Hacer que el código incorrecto parezca incorrecto] (http://www.joelonsoftware.com/articles/Wrong.html). Creo que está muy relacionado con tu pregunta, incluso si no hay una conexión directa. – Ilya
Lo más "interesante" e importante en ese artículo, en mi humilde opinión, es el tema sobre la historia de la notación húngara. Muy interesante ... – Noein