gpt4 book ai didi

language-agnostic - 使用魔术调试值(例如 0xDEADBEEF)作为文字到底有什么危险?

转载 作者:行者123 更新时间:2023-12-02 05:21:55 34 4
gpt4 key购买 nike

不用说,使用硬编码的十六进制文字指针是一场灾难:

int *i = 0xDEADBEEF;
// god knows if that location is available

但是,使用十六进制文字作为变量到底有什么危险?

int i = 0xDEADBEEF;
// what can go wrong?

如果这些值由于其 use in various debugging scenarios 而确实“危险” ,那么这意味着即使我不使用这些文字,任何在运行时偶然发现这些值之一的程序都可能崩溃。

有人关心解释使用十六进制文字的真正危险吗?


编辑:为了澄清,我指的不是源代码中常量的一般用法。我特别讨论了使用十六进制值时可能出现的调试场景问题,具体示例为 0xDEADBEEF

最佳答案

与使用任何其他类型的文字相比,使用十六进制文字没有更多的危险。

如果您的调试 session 最终在您不希望的情况下将数据作为代码执行,那么您无论如何都处于痛苦的世界中。

当然,存在正常的“魔法值”与“命名常量”代码异味/清洁度问题,但我认为您所说的并不是真正的那种危险。

关于language-agnostic - 使用魔术调试值(例如 0xDEADBEEF)作为文字到底有什么危险?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1681144/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com