Tôi muốn xác định một hằng số trong C ++ để hiển thị trong một số tệp nguồn. Tôi có thể hình dung những cách sau để xác định nó trong tệp tiêu đề:
#define GLOBAL_CONST_VAR 0xFFint GLOBAL_CONST_VAR = 0xFF;- Một số chức năng lưu lại giá trị (ví dụ
int get_GLOBAL_CONST_VAR()) enum { GLOBAL_CONST_VAR = 0xFF; }const int GLOBAL_CONST_VAR = 0xFF;extern const int GLOBAL_CONST_VAR;và trong một tệp nguồnconst int GLOBAL_CONST_VAR = 0xFF;
Tùy chọn (1) - chắc chắn không phải là tùy chọn bạn muốn sử dụng
Tùy chọn (2) - xác định phiên bản của biến trong mỗi tệp đối tượng bằng cách sử dụng tệp tiêu đề
Tùy chọn (3) - IMO giết chết quá mức trong hầu hết các trường hợp
Tùy chọn (4) - trong nhiều trường hợp có thể không tốt vì enum không có kiểu cụ thể (C ++ 0X sẽ thêm khả năng xác định kiểu)
Vì vậy, trong hầu hết các trường hợp, tôi cần phải chọn giữa (5) và (6). Những câu hỏi của tôi:
- Bạn thích (5) hay (6) hơn?
- Tại sao (5) là ok, trong khi (2) thì không?