Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - jacy11

#1
ok gracias, ya entedí, efectivamente compiladon con g++ si compila. Solo que el libro no especifica que compilador utiliza, pero como habla sobre programación en C, pues supuse que emplea unicamente el compilador de C, gcc.

Grcias por la ayuda  ;D
#2
Cita de: do-while en 26 Noviembre 2011, 11:04 AM
¡Buenas!

Esta solucion puede ser un tanto complicada, pero ahi va, intenta cambiar el nombre de alguna de las dos variables.

¡Saludos!

PD: Y si, en C++ las variables locales hacen sombra a las variables de bloques exteriores que tengan el mismo identificador. Podras acceder a las exteriores con el operador ::, pero en C no esta permitido que dos variables en un mismo ambito tengan el mismo identificador.

¡Saludos!

Pero el objetivo del ejemplo es de que declarando una variable con un nombre como global, y dentro de una función declare otra con el mismo nombre tenga la posibilidad de acceder a la global, por que como dices esta es ocultada, para solo poder acceder a la local. Claro que si la cambio no habría problema. Mi duda era por que no me funciona :: para acceder a la global, pero como dijeron antes, esto solo lo soporta C++.
#3
si efectivamente estoy compilando con gcc. Ya que mi codigo fuente queda con extensión fuente.c, probe compilando con g++ y con este si funciona. Entonces esto me confunde, pa mi que como decia programación en C los programas que trae el libro funcionarías en el compilador de C no de C++, no entiendo como esta la cosa???.  :-\ esto confirma lo que dice RyogiShiki. que me aconsejan usar en lugar de DevC++??
#4
Hola, soy nuevo en la comunidad, espero me puedan ayudar. Ahora ando aprendiendo a programar en C, pero me tope con este problema, ando siguiendo un libro "Piensa en C de Osvaldo Cairó" , ando en tema de funciones. Lo que pasa es que ahi se utiliza como un operador para hacer referencia a las variables globales dentro de una función teniendo ambás el mismo nombre. este es el ejemplo


#include <stdio.h>
/* Conflicto de variables con el mismo nombre */
void f1(void);  /* Prototipo de función. */
int K = 5;      /* Variable global. */

int main(void) {
    int I;
    for(I = 1 ; I <= 3; I++)
          f1();
}

void f1(void) {
/* La función utiliza tanto la variable local I como la variable global I. */
   int K = 2;
   K += K;
   printf("\n\nEl valor de la variable local es: %d", K);
   ::K = ::K + K; /* Uso de ambas variables. */
   printf("\nEl valor de la variable global es: %d", ::K);
}

y me mada este error al compilar
Citar
C:\Users\martin\Desktop\programasC\p4_3.c In function `f1':
17 C:\Users\martin\Desktop\programasC\p4_3.c syntax error before ':' token
18 C:\Users\martin\Desktop\programasC\p4_3.c syntax error before ':' token

Estuvé buscando si era algún otro carácter ya que al parecer hay diferencias entre un compilador y otro, pero no encontre nada. Así que es por eso recurro a uds. ¿Cómo se puede hacer referencia a la veriable global K desde la función f1? correctamente o ¿simplemente no se puede?. Por cierto utilizo dev C++ desde windows.

Espero su ayuda!
gracias.