2012-04-25 22 views
8

No estoy en una computadora, así que no puedo probar esto en este momento, pero tengo que revisar algunos códigos. Todavía estoy algo en un marco mental C++ desafortunadamente.Alcance de typedefs

Entonces, cuando se declara un typedef dentro de un archivo fuente en C, ¿cuál es su alcance? Soy consciente de que para que las funciones y variables solo estén disponibles dentro de la misma unidad de traducción, es necesario que sean estáticas y me pregunto si esto es lo mismo para typedefs.

Respuesta

22

typedefs son declaraciones. Si tiene un typedef en un archivo C, ningún otro archivo C lo sabrá, ya que se compilan indefinidamente uno del otro.

Para un typedef en un encabezado, por supuesto será visible desde todos los archivos C que lo incluyen.

+0

Gracias, eso tiene sentido. – Firedragon

5

typedef tiene el mismo alcance como variables regulares en C/C++

1

No sé cuál es el significado de esta frase compleja, pero esta es la forma estándar de C define el alcance de typedefs:

Como caso especial, un nombre de tipo (que no es una declaración de un identificador) se considera que tiene un alcance que comienza justo después del lugar dentro del nombre del tipo donde aparece el identificador omitido si no se hubiera omitido.

P.S. Alguien por favor explique.