Nếu một giá trị được định nghĩa làKích thước của #define giá trị
#define M_40 40
Là kích thước giống như một short
(2 byte) hoặc là nó như là một (byte 1) char
hoặc int
(4 byte)?
Kích thước có phụ thuộc vào việc bạn là 32 bit hay 64 bit không?
Ai nói một 'short' sẽ là 2 byte hoặc' int' sẽ là 4 byte? Đây là những đảm bảo duy nhất bạn có: http://stackoverflow.com/questions/271076/what-is-the-difference-between-an-int-and-a-long-in-c/271132#271132 – GManNickG
@GMan : Tốt liên kết .. Trong trình biên dịch của tôi và môi trường, nó là 2 byte vì vậy tôi cần phải làm rõ .. cảm ơn –
Câu hỏi này được gắn thẻ với C + +, vì vậy tôi giả định đó là những gì lập trình của bạn. Không có lý do chính đáng để sử dụng '# define' cho loại điều này trong C++. Chỉ cần viết 'const int M_40 = 40;' và được thực hiện với nó. Sau đó bạn có thể thay đổi 'int' thành' short' hoặc 'char' hoặc bất cứ thứ gì bạn thích nếu bạn quan tâm đến kích thước. Ngoài ra, đó là loại thiếu điểm của hằng số được đặt tên nếu tên của hằng số chỉ là giá trị của nó. Viết 'foo (M_40)' không có ý nghĩa rõ ràng hơn 'foo (40)'. –