b'\n_START_ARTICLE_\nVariable externa\n_START_PARAGRAPH_\nUna variable externa es, en los lenguajes de programaci\xc3\xb3n C y C++, una variable declarada con la palabra clave extern.\n_START_SECTION_\nCampo de aplicaci\xc3\xb3n\n_START_PARAGRAPH_\nDependiendo del contexto, el t\xc3\xa9rmino puede adquirir dos significados diferentes. Cuando se hace uso del t\xc3\xa9rmino para la declaraci\xc3\xb3n de una variable, extern hace saber al compilador que la variable se va a encontrar en la tabla de s\xc3\xadmbolos de otra unidad. Se utiliza para exponer variables pertenecientes a un archivo a uno o varios archivos adicionales. La declaraci\xc3\xb3n externa no es traducida por el compilador sino por el enlazador, con ello extern es un mecanismo v\xc3\xa1lido para instalar modularidad a nivel del compilador._NEWLINE_Cuando se utiliza el t\xc3\xa9rmino para la instanciaci\xc3\xb3n de una variable, extern traslada la variable a la tabla de s\xc3\xadmbolos de la unidad de traducci\xc3\xb3n de forma que el s\xc3\xadmbolo pueda ser referenciado desde otras unidades. Para ello tiene que haber una implementaci\xc3\xb3n de la variable marcada como extern en otro sitio (normalmente en el archivo header)._NEWLINE_Dos usos importantes de la externacionalizaci\xc3\xb3n son: evitar referencias circulares (del estilo de declaraciones en secciones en lenguajes como Pascal) y evitar cadenas de dependencias compiladas._NEWLINE_Las variables externas pueden declararse al margen de los bloques de funciones en un archivo de c\xc3\xb3digo fuente de igual forma que se declara cualquier otra variable: especificando su tipo y su nombre. No se usa ning\xc3\xban especificador de clase de almacenamiento, la posici\xc3\xb3n de la declaraci\xc3\xb3n dentro del archivo indica la clase de almacenamiento externo. La memoria para estas variables se asigna cuando el programa comienza a ser ejecutado y permanece asignado hasta la terminaci\xc3\xb3n del mismo. Para la mayor\xc3\xada de implementaciones en C, cada byte de memoria asignado para una variable externa es inicializado a cero. _NEWLINE_El \xc3\xa1mbito de variables externas es global, es decir, todo el c\xc3\xb3digo fuente en el archivo despu\xc3\xa9s de las declaraciones. Todas las funciones que siguen a la declaraci\xc3\xb3n pueden acceder a la variable externa usando su nombre. Sin embargo, si se declara una variable local con el mismo nombre, las referencias al nombre acceden a la c\xc3\xa9lula de la variable local.\n_START_SECTION_\nEjemplo (C)\n_START_PARAGRAPH_\nArchivo 1:_NEWLINE_  int VariableGlobal; // definici\xc3\xb3n_NEWLINE_  void UnaFunci\xc3\xb3n (void); // declaraci\xc3\xb3n externa impl\xc3\xadcita_NEWLINE_  _NEWLINE_  int main() {_NEWLINE_    VariableGlobal= 1;_NEWLINE_    UnaFunci\xc3\xb3n ();_NEWLINE_    return 0;_NEWLINE_  }_NEWLINE_Archivo 2:_NEWLINE_  extern int VariableGlobal;  // declaraci\xc3\xb3n externa_NEWLINE__NEWLINE_  void UnaFunci\xc3\xb3n (void) {   _NEWLINE_    ++ VariableGlobal;_NEWLINE_  }_NEWLINE_En este ejemplo la variable VariableGlobal es definida en el archivo 1. Para utilizar la misma variable en el archivo 2, tiene que ser declarada usando el keyword extern. Independientemente de la cantidad de archivos, una variable global solo se define una vez, sin embargo, tiene que ser declarada usando extern en cualquier archivo aparte de aquel que contiene la definici\xc3\xb3n. T\xc3\xa9cnicamente, UnaFunci\xc3\xb3n es tambi\xc3\xa9n externa, pero en C y en C++ todas las funciones son consideradas externas por defecto y normalmente no necesitan ser declaradas.'