Kiểu bool, boolean trong lập trình C/C++ (Code ví dụ)

567

Bài viết được sự cho phép của tác giả Trần Hữu Cương

Kiểu dữ liệu boolean, bool là gì?

Kiểu dữ liệu Boolean là một kiểu dữ liệu có chỉ có thể nhận một trong hai giá trị như đúng/sai (true/false, yes/no, 1/0) nhằm đại diện cho hai giá trị thật (truth value).

Trong lập trình C kiểu boolean sẽ được gọi là bool (trong Java thì gọi là boolean, trong Python thì gọi là bool… tùy theo ngôn ngữ).

  Các kiểu dữ liệu trong lập trình C/C++ (Data type)
  Cơ bản về Class trong C++

Ban đầu, ngôn ngữ C không hỗ trợ kiểu bool, mà nó dùng số integer để biểu thị true/false (0 tức là false, khác 0 tức là true). Bắt đầu từ phiên bản C99 standard for C language thì mới bắt đầu hỗ trợ kiểu bool.

Để sử dụng kiểu bool ta có các cách sau:

Cách 1: Sử dụng thư viện <stdbool.h>

Với cách này ta sử dụng kiểu bool của C (với C++ thì mặc định không cần khai báo thư viện <stdbool.h> )

Ví dụ:

#include<stdio.h>
#include <stdbool.h>

int main()
{
bool value = false;
if (value) { // tương đương với kiểm tra value == true
printf("value is true"); 
} else {
printf("value is false");
}
return 0; 
}

Kiểu bool, boolean trong lập trình C/C++ (Code ví dụ)

Cách 2: Tự định nghĩa kiểu bool với enum

enum bool { false, true }; // tương đương với typedef enum { false=0, true=1 } bool;

Ví dụ:

#include<stdio.h>
typedef enum { false, true } bool;

int main()
{
 bool value = false;
if (value) { // tuong duong v?i ki?m tra value == true
 printf("value is true");
} else {
 printf("value is false");
}
return 0;
}

Cách 3: Định nghĩa kiểu bool với integer

typedef int bool;
enum { false, true };

Cách 3: Khai báo hằng số true/false

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

Trong các cách trên:

  • Cách 1 chỉ chạy được từ phiên bản C99 standard for C language. Tuy nhiên hầu hết các bản compiler C/C++ đều đã update cho nên các bạn nên dùng cách này.
  • Cách 2,3,4: thì hoạt động giống nhau

Nhìn chung thì kiểu bool vẫn là kiểu integer, nên cho dù dùng cách nào thì bạn vẫn có thể gán bool bằng một giá trị integer bất kì (0 tức là false, khác 0 tức là true)

References:

https://en.wikipedia.org/wiki/Boolean_data_type

https://stackoverflow.com/…/using-boolean-values-in-c

Bài viết gốc được đăng tải tại codecute.com

Có thể bạn quan tâm:

Xem thêm Việc làm Developer hấp dẫn trên TopDev