我们有一段用 C 编写的代码,有时不能很好地处理零指针。
该代码最初是在 Solaris 上编写的,此类指针会导致分段错误。并不理想,但比继续耕耘要好。
我们的经验是,如果您在 AIX 上读取空指针,您将得到 0。如果您使用xlc编译器你可以添加一个选项-qcheck=all
捕获这些指针。但我们使用 gcc(并且希望继续使用该编译器)。做gcc提供这样的选择吗?
gcc提供这样的选择吗?
我羞涩地自愿回答不,没有。虽然我无法引用absence有关 gcc 和运行时 NULL 检查的信息。
您要解决的问题是您试图在编写得不好的程序中更明确地定义未定义的行为。
我建议您硬着头皮切换到 xlc 或手动添加NULL
检查代码,直到发现并删除不良行为。
考虑:
- 创建一个宏来对指针进行空检查
- 在指针赋值之后添加该宏
- 将该宏添加到接受指针的函数的入口点
当错误被删除时,您可以开始删除这些检查。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)