编译器错误 C2383

“symbol”:此符号中不允许有默认参数

C++ 编译器不允许指向函数的指针有默认参数。

在 Visual Studio 2005 之前的版本中,Microsoft C++ 编译器接受此代码,但现在会给出错误。 对于适用于所有 Visual C++ 版本的代码,请勿将默认值分配给“指向函数的指针”参数。

示例

以下示例生成 C2383,并显示可能的解决方案:

// C2383.cpp
// compile with: /c
void (*pf)(int = 0);   // C2383
void (*pf)(int);   // OK