Подтвердить что ты не робот

Как использовать логический тип данных в C?

Я просто писал код на C, и, оказывается, он не имеет типа boolean/bool. Есть ли какая-либо библиотека C, которую я могу включить, чтобы дать мне возможность возвращать тип данных boolean/bool?

4b9b3361

Ответ 1

Если у вас есть компилятор, поддерживающий C99, вы можете

#include <stdbool.h>

В противном случае вы можете определить свой собственный, если хотите. В зависимости от того, как вы хотите его использовать (и хотите ли вы скомпилировать свой код как С++), ваша реализация может быть такой же простой, как:

#define bool int
#define true 1
#define false 0

По-моему, вы можете просто использовать int и использовать ноль для обозначения значения false и ненулевого значения для обозначения true. Как обычно это делается в C.

Ответ 2

C99 имеет логический тип данных, на самом деле, но если вы должны использовать более старые версии, просто определите тип:

typedef enum {false=0, true=1} bool;

Ответ 3

C99 имеет тип bool. Чтобы использовать его,

#include <stdbool.h>

Ответ 4

Как альтернатива Джеймсу Макнеллису, я всегда стараюсь использовать перечисление для типа bool вместо макросов: typedef enum bool {false=0; true=1;} bool;. Это более безопасный b/c, который позволяет компилятору выполнять проверку типов и исключает гонки расширения макроса.

Ответ 5

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;
}