N中的NUL和NULL是否可以互换?
只需阅读Kenneth Reek的C书上的指针。 它表示NUL字节是其位为全0的字节,写为'\0'
而NULL的值为0,它指的是值为零的指针。
两者都是整数并且具有相同的值,因此它们可以互换使用。
而且这段代码也是:
char const *keyword[] = { "do", "for", "if", "register", "return", "switch", "while", NULL };
在此代码中,NULL允许搜索表的函数检测表的结尾。 那么,我们可以互换NULL和NUL宏吗?
NUL
是ASCII字符代码0的表示法。
NULL
是stddef
为空指针定义的宏。
所以, 不 ,它们不能互换使用。
没有标准化的NUL
宏,至少在C中没有。
此外, NULL
优于普通的0
字面,它向读者发出信号“嘿,我们正在处理一个指针”,这可能被认为是一个优势。
在C ++中,成语很长一段时间只写0
,但后来它们似乎已经颠倒了它并且由于某些原因引入了一个新的文字nullptr
。
在C中,我建议为指针写入NULL
,为字符写入'\0'
。