En C, las variables siempre tienen un alcance estático (o léxico) , es decir, la vinculación de una variable puede determinarse mediante el texto del programa y es independiente de la pila de llamadas de función en tiempo de ejecución.
Por ejemplo, la salida para el siguiente programa es 0, es decir, el valor devuelto por f() no depende de quién lo llame. f() siempre devuelve el valor de la variable global x.
# include <stdio.h> int x = 0; int f() { return x; } int g() { int x = 1; return f(); } int main() { printf("%d", g()); printf("\n"); getchar(); }
Referencias:
http://en.wikipedia.org/wiki/Scope_%28programming%29
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA