Tôi thường có tình huống mà tôi cần một số hằng số được tạo ra tại thời gian biên dịch cho việc sử dụng các phép dịch bit và mặt nạ.Hoạt động toán học trong quá trình xử lý trước biên dịch
ví dụ:
#define blockbits 8
#define blocksize 256 // could be generated from 2^blockbits
#define blocksize 0xFF // could be generated from blocksize - 1
Tôi muốn tất cả những được tạo ra từ blockbits
, tuy nhiên không có hoạt động năng lượng có thể được sử dụng trong tiền xử lý mà tôi biết.
Có ai biết một cách đơn giản để tạo ra loại điều này tại thời gian biên dịch không?
"tuy nhiên không có hoạt động nào có thể được sử dụng trong trình xử lý trước mà tôi biết." - thực sự? những gì về sự thay đổi bit? –
BTW là C++ chúng ta đang nói, bất kỳ lý do chính đáng nào cho '# define' thay vì hằng số? – Kos
Đây không phải là một công việc cho 'constexpr'? – DavidO