Tôi đã viết một tập hợp các cấu trúc dữ liệu và chức năng trong C, một số trong số đó sử dụng kiểu dữ liệu _Bool. Khi tôi bắt đầu, dự án đã được tinh khiết C. Bây giờ tôi đang điều tra bằng cách sử dụng một bộ công cụ GUI dựa trên C++ và đã làm cho mã phụ trợ vào một thư viện._Bool và bool: Làm thế nào để giải quyết vấn đề của một thư viện C sử dụng _Bool?
Tuy nhiên, khi biên soạn cáC++ GUI C được lỗi sau được phát ra bởi trình biên dịch:
ISO C++ forbids declaration of '_Bool' with no type
ban đầu tôi nghĩ tôi có thể tìm kiếm & thay _Bool
-bool
và tạo:
/* mybool.h */
#ifndef MYBOOL_H
#define MYBOOL_H
typedef _Bool bool;
#endif /* MYBOOL_H */
và sau đó trong bất kỳ tiêu đề nào sử dụng _Bool
#ifdef __cplusplus
extern "C" {
#else
#include "mybool.h"
#endif
/* rest of header... */
Cho đến khi tôi nhận ra điều này sẽ biên dịch thư viện với một kiểu dữ liệu boolean (C _Bool), và liên kết với thư viện bằng cách sử dụng khác (C++ bool). Thực tế, điều này có thể không quan trọng, nhưng về mặt lý thuyết, nó có thể làm (có thể có một số hệ thống mơ hồ ở đâu đó mà làm như vậy làm cho vũ trụ quay vào trong).
Tôi giả sử tôi chỉ có thể sử dụng một int và sử dụng 0 cho sai và 1 cho đúng, và typedef nó với một cái gì đó như typedef int mybool
, nhưng nó có vẻ không hấp dẫn.
Có cách nào tốt hơn/thành ngữ/tiêu chuẩn để thực hiện việc này không?
Đặt câu trả lời đó thành câu trả lời, 'bool' là cách' _Bool' có ý định sử dụng bình thường. –
Vì vậy, tôi không cần phải lo lắng về vũ trụ quay vào trong? –