I was just writing code in C and it turns out it doesn\'t have a boolean/bool datatype. Is there any C library which I can include to give me the ability to return a boolean
As an alternative to James McNellis answer, I always try to use enumeration for the bool type instead of macros: typedef enum bool {false=0; true=1;} bool;
. It is safer b/c it lets the compiler do type checking and eliminates macro expansion races
C99 has a bool
type. To use it,
#include <stdbool.h>
If you have a compiler that supports C99 you can
#include <stdbool.h>
Otherwise, you can define your own if you'd like. Depending on how you want to use it (and whether you want to be able to compile your code as C++), your implementation could be as simple as:
#define bool int
#define true 1
#define false 0
In my opinion, though, you may as well just use int
and use zero to mean false and nonzero to mean true. That's how it's usually done in C.
We can use enum type for this.We don't require a library. For example
enum {false,true};
the value for false
will be 0 and the value for true
will be 1.
struct Bool {
int true;
int false;
}
int main() {
/* bool is a variable of data type – bool*/
struct Bool bool;
/*below I’m accessing struct members through variable –bool*/
bool = {1,0};
print("Student Name is: %s", bool.true);
return 0;
}
C99 introduced _Bool
as intrinsic pure boolean type. No #include
s needed:
int main(void)
{
_Bool b = 1;
b = 0;
}
On a true C99 (or higher) compliant C compiler the above code should compile perfectly fine.