Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在将 AIX 代码移植到 Linux。我在 AIX xlc 编译器上遇到了一些将 char 与 NULL 进行比较的代码。相同的代码在 Linux 上会出现编译错误。
有将 double 与 NULL ( d != NULL) 进行比较的代码。
有人可以解释在 AIX(xlc) 上将 char 或 double 与 NULL 进行比较的语义吗?
对于 AIX 上的 xlc,“NULL”是“0”而不是“(void *)0”的宏,因此预处理器运行后的比较对 char/int/double 有效。
您可以在代码中使用 xlc -E 或 gcc -E 看到这一点。
永远不要将它用于任何事情 - 这只是琐事。修复您的代码,使其不在非指针上下文中使用 NULL。