rendered paste bodyprograma.c
#include <stdio.h>
int main(int argc, char **argv) {
extern int variableCompartida;
printf("MAIN VALOR = %d DIRECCION = %p\n", variableCompartida, &variableCompartida);
printf("LE ASIGNO 333 EN MAIN\n");
variableCompartida = 333;
printf("MAIN VALOR = %d DIRECCION = %p\n", variableCompartida, &variableCompartida);
printf("AHORA LLAMO A LA FUNCION\n");
funcionCompartida(1);
printf("VALOR = %d DIRECCION = %p\n", variableCompartida, &variableCompartida);
}
biblioteca.c
#include <stdio.h>
int variableCompartida;
void funcionCompartida(int a) {
printf("BIBLIOTECA VALOR = %d DIRECCION = %p\n", variableCompartida);
printf("BIBLIOTECA le asigno 999\n");
variableCompartida=999;
}
SALIDA:
tmp$ ./ptest
MAIN VALOR = 0 DIRECCION = 0x80497fc
LE ASIGNO 333 EN MAIN
MAIN VALOR = 333 DIRECCION = 0x80497fc
AHORA LLAMO A LA FUNCION
BIBLIOTECA VALOR = 333 DIRECCION = 0xb7f410d0
BIBLIOTECA le asigno 999
VALOR = 999 DIRECCION = 0x80497fc