web-dev-qa-db-fra.com

Quel fichier d'en-tête incluez-vous pour utiliser le type booléen en c sous linux?

Voici tous les fichiers .h que j'ai inclus jusqu'à présent, mais qui n'ont pas la définition de bool:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#include <sys/types.h>
#include <sys/socket.h>
#include <pthread.h>
#include <netdb.h>
#include <fcntl.h>
#include <unistd.h>
#include <event.h>

Quel fichier définit bool?

23
DriverBoy

Cela fait partie de C99 et est défini dans définition POSIX stdbool.h .

33
rlc

#include <stdbool.h>

Pour quelqu'un comme moi ici à copier et coller.

17
Niklas Rosencrantz

bool est juste une macro qui se développe en _Bool. Vous pouvez utiliser _Bool sans #include comme vous pouvez utiliser int ou double; c'est un mot-clé C99.

La macro est définie dans <stdbool.h> ainsi que 3 autres macros.

Les macros définies sont

  • bool: la macro se développe en _Bool
  • false: la macro se développe en 0
  • true: la macro se développe en 1
  • __bool_true_false_are_defined: la macro se développe en 1
16
pmg