b"\n_START_ARTICLE_\nVariable externa\n_START_PARAGRAPH_\nUna variable externa \xc3\xa9s, en els llenguatges de programaci\xc3\xb3 C i C++, una variable declarada amb la paraula clau extern.\n_START_SECTION_\nCamp d'aplicaci\xc3\xb3\n_START_PARAGRAPH_\nDepenent del context, el terme pot adquirir dos significats diferents. Quan es fa \xc3\xbas del terme per a la declaraci\xc3\xb3 d'una variable, extern fa saber al compilador que la variable es trobar\xc3\xa0 a la taula de s\xc3\xadmbols d'una altra unitat. S'utilitza per exposar variables pertanyents a un fitxer a un o m\xc3\xa9s fitxers addicionals. La declaraci\xc3\xb3 externa no \xc3\xa9s tradu\xc3\xafda pel compilador sin\xc3\xb3 per l'enlla\xc3\xa7ador, amb aix\xc3\xb2 extern \xc3\xa9s un mecanisme v\xc3\xa0lid per instal\xc2\xb7lar modularitat a nivell del compilador._NEWLINE_Quan s'utilitza el terme per a la instanciaci\xc3\xb3 d'una variable , extern trasllada la variable a la taula de s\xc3\xadmbols de la unitat de traducci\xc3\xb3 de manera que el s\xc3\xadmbol pugui ser referenciat des d'altres unitats. Per a aix\xc3\xb2 ha d'haver una implementaci\xc3\xb3 de la variable marcada com extern en un altre lloc, normalment en el fitxer cap\xc3\xa7alera(header)._NEWLINE_Dos usos importants de l'externalitzaci\xc3\xb3 s\xc3\xb3n: evitar refer\xc3\xa8ncies circulars (de l'estil de declaracions en seccions en llenguatges com Pascal) i evitar cadenes de depend\xc3\xa8ncies compilades._NEWLINE_Les variables externes es poden declarar al marge dels blocs de funcions, en un fitxer de codi font de la mateixa manera que es declara qualsevol altra variable, especificant el seu tipus i el seu nom. No s'usa cap especificador de classe d'emmagatzematge, la posici\xc3\xb3 de la declaraci\xc3\xb3 del fitxer indica la classe d'emmagatzematge extern. La mem\xc3\xb2ria per a aquestes variables s'assigna quan el programa comen\xc3\xa7a a ser executat i roman assignat fins a l'acabament d'aquest. Per a la majoria d'implementacions en C, cada byte de mem\xc3\xb2ria assignat per una variable externa s'inicialitza a zero._NEWLINE_L'\xc3\xa0mbit de les variables externes \xc3\xa9s global, \xc3\xa9s a dir, tot el codi font al fitxer despr\xc3\xa9s de les declaracions. Totes les funcions que segueixen a la declaraci\xc3\xb3 poden accedir a la variable externa fent servir el seu nom. No obstant aix\xc3\xb2, si es declara una variable local amb el mateix nom, les refer\xc3\xa8ncies al nom accedeixen a la c\xc3\xa8l\xc2\xb7lula de la variable local.\n_START_SECTION_\nExemple ( C )\n_START_PARAGRAPH_\nfitxer 1:_NEWLINE__NEWLINE_  int VariableGlobal;//definici\xc3\xb3_NEWLINE_  void una funci\xc3\xb3 (void);//declaraci\xc3\xb3 externa impl\xc3\xadcita_NEWLINE_ _NEWLINE_  int main (){_NEWLINE_    VariableGlobal = 1;_NEWLINE_    Una funci\xc3\xb3 ();_NEWLINE_    return 0;_NEWLINE_ }_NEWLINE_fitxer 2:_NEWLINE__NEWLINE_  extern int VariableGlobal;//declaraci\xc3\xb3 externa_NEWLINE__NEWLINE_  void una funci\xc3\xb3 (void){_NEWLINE_   ++VariableGlobal;_NEWLINE_ }_NEWLINE_En aquest exemple la variable VariableGlobal \xc3\xa9s definida al fitxer 1. Per utilitzar la mateixa variable al fitxer 2, ha de ser declarada usant la paraula clau extern . Independentment de la quantitat de fitxers, una variable global nom\xc3\xa9s es defineix una vegada, per\xc3\xb2 ha de ser declarada usant extern en qualsevol fitxer a part d'aquell que cont\xc3\xa9 la definici\xc3\xb3. T\xc3\xa8cnicament, una funci\xc3\xb3 \xc3\xa9s tamb\xc3\xa9 externa, per\xc3\xb2 en C i en C++ totes les funcions es consideren externes de forma predeterminada i normalment no necessiten ser declarades."