¿Longitud máxima de los nombres de función y de variable?

4

No estoy seguro de si esto es una propiedad del compilador o algo estándar para C. He oído hablar de los límites en la cantidad de caracteres que una variable o función puede tener (por ejemplo, 25 caracteres).

Todavía no estoy allí, pero acabo de ver una función bastante larga y comencé a pensar en ello. ¿Hay algún límite que deba conocer?

    
pregunta tarabyte

3 respuestas

3

IIRC, la mayoría de los compiladores de C tienen un límite de 255 caracteres para un identificador. Por lo general, encontrará toda la información que necesita en el manual del compilador. En su caso, es la Guía del usuario del compilador MPLAB XC8 C :

  

3.4.4.3 ¿CUÁNTO TIEMPO PUEDO HACER MIS NOMBRES VARIABLES Y MACRO?

     

El Estándar C indica que solo un número específico de caracteres iniciales en un identificador son significativos, pero en realidad no indica qué es este número y varía de   compilador a compilador. Para XC8, los primeros 255 caracteres son significativos, pero esto puede ser   reducido usando la opción -Nopción; consulte la Sección 4.8.8 "-N: Longitud del identificador". Cuanto menos   Entre los caracteres que hay en los nombres de las variables, más portátil es su código. Utilizando la   -Nopción permite al compilador verificar que sus identificadores se ajusten a una longitud específica.   Esta opción afecta a los nombres de variables y funciones, así como a los nombres de macro del preprocesador.

     

Si dos identificadores solo difieren en la parte no significativa del nombre, se consideran   para representar el mismo objeto, lo que casi con certeza conducirá a un error de código.

Tenga en cuenta que no es una buena práctica tener nombres de identificadores largos. Hace que su código sea más difícil de leer & entender.

    
respondido por el m.Alin
1

Cualquier limitación en la longitud de los identificadores depende de la implementación, pero los primeros 31 caracteres deben ser significativos en una implementación conforme.

Para dejarlo en claro, está bien permitir identificadores de 4000 caracteres, pero hacer que el Pseudopseudohipoparatiroidismo (en silencio, involuntariamente) se refiera a la misma variable que Pseudopseudohipoparatiroidismo_2.

    
respondido por el Spehro Pefhany
1

Es dependiente del compilador, vea el manual del compilador. Existen normas, pero es mejor consultar el manual del compilador. Para GCC dice que el nombre puede ser "arbitrariamente largo", por lo que no hay límite.

Los nombres de variables largos son una buena idea si son descriptivos. Algo como "USER_prepare_new_user_log ()" le dice que la función es parte del archivo / subsistema "USER" y que el resto es descriptivo y fácil de leer. Algunas personas usan cosas como Camel Case, pero yo prefiero los guiones bajos para facilitar la lectura.

    
respondido por el user

Lea otras preguntas en las etiquetas