首页
学习
活动
专区
工具
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标准的编译器上使用。

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

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

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

相关·内容

var fn = function(){ }和function fn() { }什么区别

var fn = function(){ } 这种叫做函数表达式,必须先定义后使用。 function fn () { } 这种是函数声明,可以先使用后定义,它会对函数的声明进行一个提升。...举个例子: 方法先使用后声明,是没有问题的: fun(); function fun(){     console.log("hello,www.w3h5.com"); } 那么我们接着看函数表达式:...var fun = function(){     console.log("前端资源网"); } fun(); 以上是没有任何问题的,我们把声明和使用颠倒位置: fun(); var fun = function... () {     console.log("前端资源网"); } 控制台报错:Uncaught TypeError: fun is not a function ?...参考文档: var js=function(){}和function js(){}的区别 (adsbygoogle = window.adsbygoogle || []).push({

1.9K10

防火墙、IDS、IPS之间什么区别?

一、主流产品对比 市场上的主流网络安全产品可以分为以下几个大类: 1、基础防火墙类:主要是可实现基本包过滤策略的防火墙,这类是硬件处理、软件处理等,其主要功能实现是限制对IP:port的访问。...测量属性的平均值被用来与网络、系统的行为进行比较,当观察值在正常值范围之外时,IDS就会判断入侵发生。异常检测的优点是可以检测到未知入侵和复杂的入侵,缺点是误报、漏报率高。...(三)IDS 的发展趋势 在安全漏洞被发现与被攻击之间的时间差不断缩小的情况下,基于特征检测匹配技术的IDS已经力不从心。...这样一来,问题的数据包,以及所有来自同一数据流的后续数据包,都能够在IPS设备中被清除掉。 简单地理解,IPS等于防火墙加上入侵检测系统,但并不是说IPS可以代替防火墙或入侵检测系统。

5.2K20

深度好文:QinQ 、VLAN、VXLAN之间什么区别

在每个广播域中,用户之间可以自由交流。对于不同 VLAN 之间的连接,VLAN Tagging 和 VLAN 间路由是用户必须知道的两个必要术语。...两种 QinQ 实现方式: 基本 QinQ 选择性 QinQ。 Basic QinQ 是一种基于端口的标记方式。...VXLAN 头:它由一个 24 位的 VNID 组成,用于标识第 2 层段并保持段之间的第 2 层隔离。...QinQ vs VLAN vs VXLAN:什么区别? VLAN 已被用于解决不同的问题,例如第 2 层网络隔离、泛洪和作为路由接口。...并且独特的内部标签避免了私有 VLAN ID 和公共 VLAN ID 之间的冲突,为小型或大型企业网络提供了一个简单的第 2 层 VPN 解决方案。 注:VLAN 属于公网。

1.5K30

c++和c语言之间什么区别

2,C语言标准的函数库,它们松散的,只是把功能相同的函数放在一个头文件中;而C++对于大多数的函数都是集成的很紧密,特别是C语言中没有的C++中的API是对Window系统的大多数API有机的组合,...3,特别是C++中的图形处理,它和语言的图形很大的区别。C语言中的图形处理函数基本上是不能用在中C++中的。C语言标准中不包括图形处理。...4,C和C++中都有结构的概念,但是在C语言中结构只有成员变量,而没成员方法,而在C++中结构中,它可以自己的成员变量和成员函数。...很多可用的工具如加入MFC中的类的时候,加入变量的时候等等。 9,C++中的附加工具也有很多,可以进行系统的分析,可以查看API;可以查看控件。

2.1K30

面试官:BIO、NIO、AIO之间什么区别

BIO:同步阻塞 IO; NIO:同步非阻塞 IO; AIO:异步非阻塞 IO; 不同的工作方式,带来的传输效率是不一样的,下面我们以网络 IO 为例,一起看看不同的工作方式下,彼此之间何不同。...伪异步 IO 模型图,如下图: 采用线程池和任务队列可以实现一种叫做伪异步的 I/O 通信框架,当新的客户端接入时,将客户端的 Socket 封装成一个 Task 投递到线程池中进行处理。...ssc.register(selector, SelectionKey.OP_ACCEPT); while (true){ // 查询指定事件已经就绪的通道数量,select方法阻塞效果...Exception e) { e.printStackTrace(); } finally { //当新客户端接入的时候...服务端收到客户端发送的信息:Hello,我是客户端 客户端控制台结果如下: 客户端收到服务器返回的内容:server send 这种组合方式用起来十分复杂,只有在一些非常复杂的分布式情况下使用,像集群之间的消息同步机制一般用这种

1.2K20

CPU 架构:ARM 和 x86 之间什么区别

如果你要购买一台新计算机,两种主要的 CPU 架构可供选择。...这些方法之间存在差异,并且对性能的意义具有重大影响。 ARM 与 x86:指令集 x86 和 ARM 处理器平台做相同的事情,但它们以完全不同的方式完成。...不过,从那时起,硬件自然了很大的发展。在 8008 之后是 8088,然后是 16 位 8086,它为最初的 IBM PC 服务。...因此,ARM 架构仅使用 34 条指令,这些指令主要处理简单的数学运算并在寄存器和存储器位置之间移动数据。...ARM 和 x86 CPU 如何访问 RAM 苹果的芯片和英特尔的芯片之间还有最后一个区别——这不是ARM架构所固有的,而是苹果自己做出的设计决定。

5.4K21

Type 1 和Type 2 之间什么区别

在了解 Type 1 和 Type 2 Hypervisor 之间的区别以及哪个更好之前,让我们先看看 Hypervisor 是什么? 什么是Hypervisor?...Hypervisor是一种系统软件,它充当计算机硬件和虚拟机之间的中介,负责有效地分配和利用由各个虚拟机使用的硬件资源,这些虚拟机在物理主机上单独工作,因此,Hypervisor也称为虚拟机管理器。...现在让我们看看Hypervisor的类型以及它们之间的区别。 Type 1 Hypervisor 可以本地安装并直接在物理主机上运行的Hypervisor称为Type 1 Hypervisor。...单个主机上可以多个。 成本更低,更适合小型企业解决方案。...[202111182311545.png] 结论 希望这些关键指标能帮助您在两种类型的Hypervisor之间做出决定,根据用例场景,您使用的Hypervisor类型当然会不时发生变化。

4.7K50

网络可靠性和可用性之间什么区别

首先是平均故障间隔时间(MTBF),即两次故障之间的网络运行时间。要得出这一数字,网络管理员需要用总服务时间除以网络故障次数。...因此,如果在 100 小时的过程中,三次网络故障,停机时间加起来为 4 小时,这相当于 96 小时的服务时间,MTBF 就是 96 除以 3,即 32 小时。...平均无故障时间(MTBF)长或故障率低的网络可能持续完成交易和流程。衡量网络可用性只是性能等式的一部分。IT 部门还需要跟踪可靠性以确认网络基础设施为支持业务流程提供了最佳服务水平。...网络管理员可以深入分析和隔离网络上不同网段和路径的可用性和可靠性指标,以发现配置效率低下的问题,并更好地规划数据中心或其他企业资源之间的冗余。他们还可以利用这些信息来确定需要升级的资源。

58031

测试数据集与验证数据集之间什么区别呢?

测试数据集用于在最终调整好的模型之间进行比较选择时,给出各个模型能力的无偏估计。 在机器学习的应用场景中,验证数据集究竟是什么?以及它比起测试数据集何不同?这其中概念常使人混淆。...当大量数据时,可以将一组样本放在一边评估最终模型。“训练”数据集是用于创建模型的样本的总称,而“测试”或“验证”数据集用于限定性能。...您知道这些术语什么其他明确定义或用法吗?比如说在论文或教科书中的引用。 如果有,请在底下的评论中告诉我。...“验证数据集” 主要用于描述调整超参数和数据预处理时的模型评估,而 “测试数据集” 则主要用于描述最终模型之间的模型能力评估。...当采用 k 折交叉验证等交替重采样方法时,“验证数据集” 和 “测试数据集” 的概念就有可能会消失,特别是当重采样方法之间存在嵌套时。 您还有其它什么问题吗?

5.7K100
领券