#if _OWN_DEBUG_LEVEL > 0
void *GetPostArgs(TYPE *Fcgx_Request, FILE *fpDebugPointer)
#else
void *GetPostArgs(TYPE *Fcgx_Request)
#endif
{
...
if (...)
{
return NULL;
}
...
do
{
...
if (...)
{
return NULL;
}
...
}
while (...);
if (...)
{
return NULL;
}
}
这是使用 gcc 4.3 产生 NOT 错误的代码的代表代码
但它应该,不是吗?
我的意思是函数的两种情况都有返回类型指针。
而在身体的尽头,什么也没有返回。那不合法是吗?但是代码可以编译,更有趣的是:当函数被调用并运行到函数体的末尾时,它正在返回0x80808080
.
这可能是由我的代码中未定义的行为引起的吗?
或者这只是一个 gcc 错误?
或者我可以做一些不同的错误吗?