Chuẩn C99 có cho phép C programmers sử dụng từ khóa "true" và "false" không?
Tình hình là em đang đọc đến trang 59 của quyển Head First C thì có 1 đoạn họ nói như sau:
The ANSI C standard has no value for true and false. C programs treat the value 0 as false, and any other value as true. The C99 standard does allow you to use the words true and false in your programs—but the compiler treats them as the values 1 and 0 anyway.
Theo cách hiểu của em thì: Phiên bản đầu tiên của C (ANSI-C) không có giá trị cho true
và false
, C programmers xem giá trị 0 là false
, các giá trị khác là true
. Nhưng chuẩn C99 cho phép programmers sử dụng từ khóa true
và false
…
Sau khi đọc xong đoạn này, em mừng rỡ vội vàng vào Codeblocks và chỉnh Compiler sang chuẩn C99 rồi type 1 đoạn code đơn giản sau:
#include <stdio.h>
int main()
{
int num = 1;
if (num == true)
printf("Hihi.");
else
printf("Huhu.");
return 0;
}
Kết quả là compiler của Codeblocks (gcc) nó báo: 'true' undeclared (first use in this function)
=>
Mọi người có thể giải thích cho em tại sao không ạ ? Em xin cảm ơn nhiều
#include <stdbool.h>
Bạn xem link này nói tuơng đối chuẩn
stackoverflow.com
C99 boolean data type?
Vậy nếu chỉ muốn dùng
bool
là phải#include
cả 1 cái thư viện luôn hả anh ? Và lúc nàybool
với_Bool
là giống nhau ?Cả cái thư viện gì, include để được macro true false thôi.
https://en.wikibooks.org/wiki/C_Programming/C_Reference/stdbool.h
:)) Tại bọn lập trình viên cứ than là ko kiểu bool có chứ sao.
Hi Long Dragon.
Không cần thư viện gì cả theêm đoạn này vào đầu file
bạn cứ define TRUE 1, FALSE 0 cho nó đơn giản nhé,ko quan trọng lắm chỗ đó đâu
Ừm, để đoạn code:
lên đầu file là cũng ok lắm rồi