不用说,使用硬编码的十六进制文字指针是一场灾难:
int *i = 0xDEADBEEF;
// god knows if that location is available
但是,使用十六进制文字作为变量值到底有什么危险?
int i = 0xDEADBEEF;
// what can go wrong?
如果这些值由于在各种调试场景中的使用而确实是“危险的” ,那么这意味着即使我不使用这些文字,任何在运行期间碰巧偶然发现这些值之一的程序都可能崩溃。
有人愿意解释使用十六进制文字的真正危险吗?
编辑:只是为了澄清,我不是指源代码中常量的一般使用。我专门讨论使用十六进制值时可能出现的调试场景问题0xDEADBEEF
,具体示例为.