¿Cómo declarar variables booleanas en C? GCC
Hola a todos (primer mensaje)
Es la primera vez que escribo en este foro. Parece ser bastante activo.
Mi pregunta es si hay alguna manera de declarar variables booleanas en c.
Serían de gran utilidad en mis programas. Es una duda que tengo desde hace tiempo que se relaciona con mis caprichos de programación (como si usar un bit en lugar de un byte hiciera mucha diferencia)
Intenté declararlas así:
bool b;
Pero estuvo lejos de funcionar. Parece que el término bool es usado sólo por las funciones.
Intenté usar la función enum de la siguiente forma:
#include"stdio.h"
main()
{
enum bul {0,1}; //Declaro un tipo de variable booleana que llamo “bul”.
bul var; //Declaro una variable tipo bul. Entonces se supone que “var” debe ser booleana.
var=0; //Ahora asigno 0 a la variable booleana.
//Ahora uso prinf porque quiero ver mi 0.
printf("Tu variable es: %d", var);
return 0;
}
Guardé el documento como b.c en ~ y luego compilé:
[[email protected] ~]$ gcc b.c -o b
b.c: En la función ‘main’:
b.c:4: error: expected identifier before numeric constant
b.c:5: error: ‘bul’ no se declaró aquí (primer uso en esta función)
b.c:5: error: (Cada identificador no declarado solamente se reporta una vez
b.c:5: error: para cada funcion en la que aparece.)
b.c:5: error: expected ‘;’ before ‘var’
b.c:6: error: ‘var’ no se declaró aquí (primer uso en esta función)
¿Qué hice mal?
Detalles adicionales:
- COMPILO CON GCC desde gnome-terminal (no me manden librerías de windows)
- OS: Fedora 11 (Linux)
- En lugar de “{0,1}” intenté com “{no=0,si=1}” sin éxito.
GRACIAS
Es la primera vez que escribo en este foro. Parece ser bastante activo.
Mi pregunta es si hay alguna manera de declarar variables booleanas en c.
Serían de gran utilidad en mis programas. Es una duda que tengo desde hace tiempo que se relaciona con mis caprichos de programación (como si usar un bit en lugar de un byte hiciera mucha diferencia)
Intenté declararlas así:
bool b;
Pero estuvo lejos de funcionar. Parece que el término bool es usado sólo por las funciones.
Intenté usar la función enum de la siguiente forma:
#include"stdio.h"
main()
{
enum bul {0,1}; //Declaro un tipo de variable booleana que llamo “bul”.
bul var; //Declaro una variable tipo bul. Entonces se supone que “var” debe ser booleana.
var=0; //Ahora asigno 0 a la variable booleana.
//Ahora uso prinf porque quiero ver mi 0.
printf("Tu variable es: %d", var);
return 0;
}
Guardé el documento como b.c en ~ y luego compilé:
[[email protected] ~]$ gcc b.c -o b
b.c: En la función ‘main’:
b.c:4: error: expected identifier before numeric constant
b.c:5: error: ‘bul’ no se declaró aquí (primer uso en esta función)
b.c:5: error: (Cada identificador no declarado solamente se reporta una vez
b.c:5: error: para cada funcion en la que aparece.)
b.c:5: error: expected ‘;’ before ‘var’
b.c:6: error: ‘var’ no se declaró aquí (primer uso en esta función)
¿Qué hice mal?
Detalles adicionales:
- COMPILO CON GCC desde gnome-terminal (no me manden librerías de windows)
- OS: Fedora 11 (Linux)
- En lugar de “{0,1}” intenté com “{no=0,si=1}” sin éxito.
GRACIAS
El tipo bool no existe en C (sí en C++), aunque hay compiladores de C que incluyen alguna de las características de C++, así que puede que lo encuentres en alguno.
Yo he probado en mi sistema (Ubuntu 9.04), y con GCC desde un terminal también me da error al declarar un tipo bool. Te puedo sugerir varias cosas:
1. Utilizar g++ en lugar de gcc (g++ es el compilador de C++).
2. Si tienes que utilizar forzosamente C y no C++, puedes utilizar variables de tipo char, short o int como booleanas, simplemente les asignarás los valores 0 ó 1, según corresponda.
3. También puedes utilizar estructuras de campos de bits.
Espero que te sirva de ayuda. Si tienes más dusas, ya sabes dónde estamos.
Saludos,
Yo he probado en mi sistema (Ubuntu 9.04), y con GCC desde un terminal también me da error al declarar un tipo bool. Te puedo sugerir varias cosas:
1. Utilizar g++ en lugar de gcc (g++ es el compilador de C++).
2. Si tienes que utilizar forzosamente C y no C++, puedes utilizar variables de tipo char, short o int como booleanas, simplemente les asignarás los valores 0 ó 1, según corresponda.
3. También puedes utilizar estructuras de campos de bits.
Espero que te sirva de ayuda. Si tienes más dusas, ya sabes dónde estamos.
Saludos,