nếu tôi xác định varibles thường xuyên của tôi trong phần đầu của tôi như thế này ...biến liên tục không làm việc trong tiêu đề
extern const double PI = 3.1415926535;
extern const double PI_under_180 = 180.0f/PI;
extern const double PI_over_180 = PI/180.0f;
tôi nhận được lỗi sau
1>MyDirectX.obj : error LNK2005: "double const PI" ([email protected]@3NB) already defined in main.obj
1>MyDirectX.obj : error LNK2005: "double const PI_under_180" ([email protected]@3NB) already defined in main.obj
1>MyDirectX.obj : error LNK2005: "double const PI_over_180" ([email protected]@3NB) already defined in main.obj
1>MyGame.obj : error LNK2005: "double const PI" ([email protected]@3NB) already defined in main.obj
1>MyGame.obj : error LNK2005: "double const PI_under_180" ([email protected]@3NB) already defined in main.obj
1>MyGame.obj : error LNK2005: "double const PI_over_180" ([email protected]@3NB) already defined in main.obj
nhưng Nếu tôi loại bỏ những hằng số từ tiêu đề và đặt chúng trong tài liệu bao gồm tiêu đề như thế này ...
const double PI = 3.1415926535;
const double PI_under_180 = 180.0f/PI;
const double PI_over_180 = PI/180.0f;
Nó hoạt động
Có ai có ý tưởng về những gì tôi có thể làm sai không ??
Cảm ơn
Có lẽ bạn nên viết '180.0' thay vì' 180.0f' vì bạn đang xử lý số nhân đôi thay vì phao. Đồng thời đổi tên 'PI' thành một cái gì đó độc đáo hơn. 'PI' được sử dụng trong nhiều thư viện dưới dạng macro và nếu bạn sử dụng nó, bạn có thể nhận được kết quả kỳ quặc. – thebretness
Mất 'extern' và bạn sẽ ổn. – sellibitze
@sellibitze: Không phải trong C, trong đó các đối tượng 'const' có liên kết bên ngoài theo mặc định, có nghĩa là' extern' không thay đổi bất kỳ thứ gì. – AnT