我想使用一个魔数(Magic Number)作为常量来检查内存块是否未被侵犯,是否有一种“反向检查”的方法可以将签名恢复为 MAGIC_32BIT
的十六进制格式>
#define MAGIC_32BIT 0x77A5844CU
int signature = (int)MAGIC_32BIT;
此外,我想使用更有创意的魔数(Magic Number),关于生成它们的任何想法或要遵循的规则?无意冒犯,但我听说过微软的 0xB16B00B5
并希望我的代码更“可读”。
最佳答案
是的,我找到了答案,直接检查宏,cegfault 的 wiki 评论表明 int 变量可以互换,而无需使用强制转换。
#define MAGIC_NUM 0x8BADF00D
#define CHECK_SIG(A) (A == MAGIC_NUM)
关于c - C 中的魔数(Magic Number),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12024408/