首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

__PRETTY_FUNCTION __,__ FUNCTION __,__ func__之间有什么区别?

PRETTY_FUNCTION, FUNCTION, func 是在C++中用于获取函数名的宏定义。

  1. PRETTY_FUNCTION:这是一个GNU C++编译器的扩展,用于获取包含函数的类名和参数类型的完整函数名。它返回一个字符串常量,包含了函数的类名、参数类型和函数名。这个宏在编译器中定义,可以用于调试和日志记录。
  2. FUNCTION:这是一个标准C++的宏定义,用于获取函数的名称。它返回一个字符串常量,只包含函数的名称,不包含类名和参数类型。这个宏在编译器中定义,可以用于调试和日志记录。
  3. func:这是C99标准引入的宏定义,用于获取函数的名称。它返回一个字符串常量,只包含函数的名称,不包含类名和参数类型。这个宏在编译器中定义,可以用于调试和日志记录。

这些宏的区别在于返回的函数名的详细程度和可移植性:

  • PRETTY_FUNCTION 提供了最详细的函数名信息,包括类名和参数类型,但是它是GNU C++编译器的扩展,不是标准C++,在其他编译器上可能不支持。
  • FUNCTION 提供了函数的名称,但不包括类名和参数类型,它是标准C++的宏定义,可以在大多数编译器上使用。
  • func 提供了函数的名称,但不包括类名和参数类型,它是C99标准引入的宏定义,可以在支持C99标准的编译器上使用。

在使用这些宏时,可以根据需要选择合适的宏来获取函数名。在调试和日志记录中,可以使用这些宏来输出函数名,以便更好地追踪代码执行路径和定位问题。

腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券