Tengo un buffer char
(es decir, un byte) que estoy enviando a través de la red. En algún momento en el futuro podría querer cambiar el buffer a un tipo diferente como unsigned char
o short
. He estado pensando en hacer algo como esto:¿Uso válido de typedef?
typedef char bufferElementType;
Y cada vez que hago cualquier cosa con un elemento amortiguador lo declaro como bufferElementType
en lugar de char
. De esa forma podría cambiar a otro tipo cambiando este typedef (por supuesto, no sería tan simple, pero al menos sería fácil identificar los lugares que necesitan ser modificados ... habrá un bufferElementType
cerca) .
¿Es este un uso válido/bueno de typedef? ¿No vale la pena el problema? ¿Me va a dar dolor de cabeza en algún momento en el futuro? ¿Va a hacer que los programadores de mantenimiento me odien?
He leído a través de When Should I Use Typedef In C++, pero nadie realmente cubrió esto.
¿Utiliza matrices de este tipo para sus almacenamientos intermedios? ¿O quiere decir que el búfer tiene una longitud de 1 byte, y es posible que desee convertirlo en 2 bytes o 4 bytes en el futuro? –
En ese caso, no hay mucha ventaja al usar "typedef char bufferElementType;". Si utiliza el mismo tamaño de matriz en todas partes, puede ser útil escribir def de todo el tipo de matriz: "typedef char [1024] bufferElementType;" - que te permite cambiar el tamaño del búfer en todas partes de una vez. –
Sin embargo, si sus búferes son realmente para contener "caracteres de texto" y está considerando cambiar de una codificación de caracteres exactamente 1 byte (por ejemplo ANSI) a una codificación de caracteres exactamente 2 byte o exactamente 4 bytes, su original typedef es el camino a seguir. –