在 AIX (xlc) 上将 char 与 NULL 进行比较是什么意思?
What is the meaning of comparing char to NULL on AIX (xlc)?
我正在将 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 来查看。
切勿将此用于任何用途 - 这只是琐事。修复您的代码以在 non-pointer 上下文中不使用 NULL。
我正在将 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 来查看。
切勿将此用于任何用途 - 这只是琐事。修复您的代码以在 non-pointer 上下文中不使用 NULL。