根据这里的信息,C语言不支持默认参数。
我在导出库中有以下方法:
extern "C"
{
__declspec (dllexport) uintptr_t Method(int freq, int *pRetval, bool *support2MHz);
}
如果我将最后一个参数改为可选项,代码会变成这样:
extern "C"
{
__declspec (dllexport) uintptr_t Method(int freq, int *pRetval, bool *support2MHz = NULL);
}
我的dll仍旧被编译。我的问题是为什么?大家都说C代码不支持默认参数。
我使用的是MS 2015的C++。
extern "C"
不意味着“这是C代码”,它只影响导出符号的形式(即“方法”)。如果将其提供给C编译器,它将抱怨extern "C"
和默认参数。 - molbdnilo