| Ver tema anterior :: Ver siguiente tema |
| Autor | Mensaje |
|---|
Wellingtom

Registrado: 19 Sep 2007 Mensajes: 20 Ubicación: venezuela
| Publicado: 21/09/2007 2:15 am | | | Título: ¿como hago que una funcion me devuelva "true" ó... |
| ó false....?
es decir... antes programé un poquito en visual basic... y podias usar la funcion de una forma mas comoda, es decir: _________________________________________________________
/* acabo de definir una variable llamada " es_primo " (para saber si un numero es primo o no) */
int aaaaa = 5;
if (num es_primo(aaaaa) = true) /* estoy inventando */ { printf ("el numero es primo"); }
else
{ printf ("el numero NO es primo"); }
________________________________________________________
así hacía en visual basic (casi), y funcionaba perfecto...
¿ como lo haria en C ?
es que a veces quiero que el resultado sea o true, o false... y no se como... _________________ o sea hello! |
|
| Volver arriba | |
 |
cheroky
Registrado: 22 Sep 2005 Mensajes: 1372 Ubicación: En ecx esperando un call
| Publicado: 21/09/2007 3:50 am | | | Título: |
| En C90 (el estandar de facto) no existe el tipo bool, en C99 se ha definido como tal el tipo _Bool. En C por definicion cualquier valor distinto de 0 es verdadero, por tanto se pueden evaluar funciones por su retorno.
| Código: | if(foo() == 0) puts("verdadero") /* o al contrario */ else puts("falso"); |
Esto tiene el detalle de que dependiendo del retorno de la funcion se evalua de una forma u otra, en la biblioteca estandar muchas funciones retornan 0 siendo "true" para validar bucles u otras estructuras de control. Sin embargo hay que diferenciar entre lo que devuelve la expresion y lo que retorna la función. devuelve 1 (true) si la función retorna 0 pudiendose cambiar por: en este caso usamos el operador de negacion, siendo equivalente que la expresion anterior.
No ostante si por alguna estraña razon quieres simular un tipo booleano puedes hacerlo mediante macros.
| Código: | #define TRUE 1 #define FALSE 0 /* */ |
pero tendrias problemas de legilibilidad, debido a las funciones que retornan 0.
S2. _________________ - Explícito es mejor que implícito. - Simple es mejor que complejo. - Complejo es mejor que complicado. - Plano es mejor que anidado. - Ralo es mejor que denso. |
|
| Volver arriba | |
 |
rir3760

Registrado: 01 Oct 2004 Mensajes: 3657 Ubicación: Mexico
| Publicado: 21/09/2007 8:57 am | | | Título: |
| Como ya te aclaro Cheroky basta con devolver un valor distinto de cero para que este se tome como verdadero (y cero como falso).
Un ejemplo practico de esto son las funciones cuyos prototipos se encuentran en ctype.h como isalpha, isdigit, etc.
Un saludo _________________ The capacity to learn is a gift; The ability to learn is a skill; The willingness to learn is a choice. -- Rebec of Ginaz |
|
| Volver arriba | |
 |
|
|