c-指针的正确无效值是什么?
作者:互联网
假设我有这段代码.基本的“如果呼叫者未提供值,请计算值”方案.
void fun(const char* ptr = NULL)
{
if (ptr==NULL) {
// calculate what ptr value should be
}
// now handle ptr normally
}
并用
fun(); // don't know the value yet, let fun work it out
要么
fun(something); // use this value
但是,事实证明,ptr可以具有各种值,包括NULL,因此我不能将NULL用作呼叫者未提供ptr的信号.
因此,我不确定现在应为ptr提供什么默认值,而不是NULL.我可以使用什么魔术值?有人有想法吗?
解决方法:
void fun()
{
// calculate what ptr value should be
const char* ptr = /*...*/;
// now handle ptr normally
fun(ptr);
}
标签:default-arguments,c 来源: https://codeday.me/bug/20191013/1908968.html