【发布时间】:2010-02-24 11:40:52
【问题描述】:
我想在我的程序中重新定义NULL比如
#define MYNULL ((void*)0)
但是这个定义在下面的语句中不起作用:
char *ch = MYNULL;
错误:无法从 void* 转换为 char *
定义 NULL 的最佳方法是什么?
【问题讨论】:
-
哪种语言? C 或 C++,它们是非常不同的语言
-
你认为你为什么需要这样做?
-
您能否将变量 ch 的名称更改为其他名称(例如
str),因为这可能会使快速阅读它的人感到困惑,他们可能会推断您对 NUL 处理感兴趣。 (但我真正的问题是(正如@Neil Butterworth 所问的那样),为什么?)(或者你能澄清一下你希望达到的目标吗?你是否试图让一个清单常量同时作为指针和 NUL 字符具有双重职责? -
就目前而言,这只是一个糟糕的问题,因为您几乎肯定不应该这样做。也许如果你解释一下你的动机是什么,理由可能会更清楚?
-
这是一个令人担忧的问题 - 表明做了坏事。