使用 __func__ 标识符时,C++ 访问冲突读取位置 0xFFFFFFFFFFFFFFFF

C++ Access violation reading location 0xFFFFFFFFFFFFFFFF when using __func__ identifier

我正在使用 Visual Studio 2017,我将项目设置为在 C/C++->Languages

下使用 ISO C++14 标准

调试器无法识别 __func__ 预定义标识符,如果我尝试将其用作字符串并出现错误,它会崩溃:

: Access violation reading location 0xFFFFFFFFFFFFFFFF

我缺少什么才能使用这个标识符?

代码示例(如果需要)

printf("%S\n", __func__);

谢谢

static const char __func__[];

printf() 以大写字母 S 作为转换说明符是一个需要 wchar_t*.

的扩展

解决方法,使用小写 s:

printf("%s\n", __func__);

std::cout << __func__ << '\n';