__func__ returns class 名称在调试中但不在发布中
__func__ returns class name in debug but not in release
我正在使用 12 年前用 Embarcadero C++ 编写的遗留软件,我注意到:
当您在 32 位的调试或发布配置中使用 __func__
或 __FUNC__
时,它 returns ClassName::FunctionName
但是当在 64 位的调试或发布配置中构建时,它 returns只有 FunctionName
.
这是预期的行为吗?我可以更改吗?
我也想 ClassName::FunctionName
在 64 位版本配置中。
我正在使用 Embarcadero® C++Builder 10.3 版本 26.0.36039.7899
到目前为止,我的 Google 技能让我失望了,在此先感谢。
您可以使用__PRETTY_FUNCTION__
获得完整的函数签名。此宏未在 Embarcadero 文档中列出,因此它可能不适用于 Classic 编译器。
C++ Builder 10.3.3 中的输出如下:
int ClassName::FunctionName(int, int)
如果您需要删除 return 值和参数,只需解析字符串即可。
我正在使用 12 年前用 Embarcadero C++ 编写的遗留软件,我注意到:
当您在 32 位的调试或发布配置中使用 __func__
或 __FUNC__
时,它 returns ClassName::FunctionName
但是当在 64 位的调试或发布配置中构建时,它 returns只有 FunctionName
.
这是预期的行为吗?我可以更改吗?
我也想 ClassName::FunctionName
在 64 位版本配置中。
我正在使用 Embarcadero® C++Builder 10.3 版本 26.0.36039.7899
到目前为止,我的 Google 技能让我失望了,在此先感谢。
您可以使用__PRETTY_FUNCTION__
获得完整的函数签名。此宏未在 Embarcadero 文档中列出,因此它可能不适用于 Classic 编译器。
C++ Builder 10.3.3 中的输出如下:
int ClassName::FunctionName(int, int)
如果您需要删除 return 值和参数,只需解析字符串即可。