C++中的三个特殊宏:__FILE__,__FUNCTION__和__LINE__

2023-05-16

C++中的三个特殊宏:FILEFUNCTION__和__LINE

1. __FILE__宏

__FILE__宏用于检查当前文件名,例如:

#include <cstdio>
using namespace std;

int main() {
    printf("%s\n", __FILE__);
    return 0;
}

假如这段代码保存为a.cc,就会输出a.cc。这在大项目多文件时调试时很有用。

2. __FUNCTION__宏

__FUNCTION__宏用于输出当前函数名,例如:

#include <cstdio>
using namespace std;

void foo() {
    printf("%s\n", __FUNCTION__); // 输出foo
}

void bar() {
    printf("%s\n", __FUNCTION__); // 输出bar
}

int main() {
    foo();
    bar();
    printf("%s\n", __FUNCTION__); // 输出main
    return 0;
}

可以帮助我们快速定位错误发生的位置。

3. __LINE__宏

__LINE__宏用于输出当前代码是该文件中的第几行,例如:

#include <cstdio>
using namespace std;

void foo() {
    printf("%d\n", __LINE__); // 输出5
}

void bar() {
    printf("%d\n", __LINE__); // 输出9
}

int main() {
    foo();
    bar();
    printf("%d\n", __LINE__); // 输出15
    return 0;
}   

总结

联合这三个宏,我们输出调试信息时就可以快速定位错误发生的位置:

printf("%s:%d[%s] Error: xxxx\n", __FILE__, __LINE__, __FUNCTION__);

转载于: https://www.cnblogs.com/szdytom/p/13572968.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++中的三个特殊宏:__FILE__,__FUNCTION__和__LINE__ 的相关文章

  • 如何从视图中使用模型函数? - 拉拉维尔 5.4

    我在模型类中创建了一个函数 它是 public function scopetest query return query gt pluck name 我的控制器代码是 public function index books Book al
  • Android:永久保存文件(即使在清除数据/卸载后)

    我想知道是否有一种方法可以永久存储少量数据 永久我的意思是即使用户清除应用程序数据 卸载应用程序 我也希望数据保留下来 我知道当用户清除应用程序数据 卸载应用程序时 共享首选项和数据库将被删除 我也知道我可以在 SD 卡上保存内容 但是如果
  • 系统找不到java中指定的文件

    我正在制作一个打开和读取文件的程序 这是我的代码 import java io public class FileRead public static void main String args try File file new File
  • 在 Android 上使用 FileOutputStream 创建的文件在哪里?

    我在代码中创建了一个文件 如下所示 FileOutputStream fOut openFileOutput samplefile txt MODE WORLD READABLE OutputStreamWriter osw new Out
  • 为什么这个函数不是纯粹的?

    在维基百科文章中https en wikipedia org wiki Pure function Impure functions https en wikipedia org wiki Pure function Impure func
  • 查找提供的 Sum 值的组合

    我有一系列这样的数字 myvar 57 71 87 97 99 101 103 113 114 115 128 129 131 137 147 156 163 186 现在我想计算所有这些可能的组合 长度为1到20 其总和等于给定的数字m
  • 函数输入参数的 auto 是否可以替代函数模板?

    在 C 20 中auto关键字可用于函数输入参数 这是函数模板的适当替代吗 在决定采用哪种方法时是否需要考虑任何实际差异 template
  • Python Tkinter,停止线程函数

    我目前正在为 3D 打印机开发 GUI 并且遇到如何停止线程函数的问题 我希望能够单击 GUI 中具有另一个功能的按钮 该按钮将阻止线程函数通过串行端口发送 G 代码字符串 目前 该函数已合并线程 以允许在打印期间触发其他函数 我非常感谢有
  • 同步写入使用 FILE_FLAG_OVERLAPPED 打开的文件

    我已经使用打开了一个文件 HANDLE handle CreateFileW fileName GENERIC READ GENERIC WRITE 0 NULL OPEN EXISTING FILE FLAG OVERLAPPED NUL
  • strlen(s) 和 (strlen)(s) 之间有什么区别吗? [复制]

    这个问题在这里已经有答案了 在 bstrlib c bstring 库 中 有几个地方在函数调用周围放置了括号 什么目的 代码片段 bstring bfromcstr const char str bstring b int i size
  • 如何在C中实现带连分数的自然对数?

    这里我有一个小问题 根据这个公式创建一些东西 这就是我所拥有的 但它不起作用 弗兰基 我真的不明白它应该如何工作 我尝试用一 些错误的指令对其进行编码 N 是迭代次数和分数部分 我认为它会以某种方式导致递归 但不知道如何 谢谢你的帮助 do
  • Java:如何从转义的 URL 获取文件?

    我收到了一个定位本地文件的 URL 事实上我收到的 URL 不在我的控制范围内 URL 按照 RFC2396 中的定义进行有效转义 如何将其转换为 Java File 对象 有趣的是 URL getFile 方法返回一个字符串 而不是文件
  • 删除文件的最后 10 个字符

    我想删除文件的最后 10 个字符 说一个字符串 hello i am a c learner 是文件内的数据 我只是希望该文件是 hello i am a 文件的最后 10 个字符 即字符串 c learner 应在文件内消除 解决方案 将
  • 比较数组中的文件、从文本文件中删除行、函数、日志记录

    所以我创建了这两个数组 Approved Shares 和 Current Shares Reads Approvedshare txt and makes the txt file into an array public objFSO
  • JavaFX ImageView 未更新

    因此 我尝试将图像加载并保存到 imageView 中 其中图像的位置是通过文件浏览器选择的 我已经为此工作好几天了 如果我不能解决这个问题 我就会中风 我已经尝试了我能想到的一切 预先感谢您的帮助 UPDATED 这是我的主要课程 pub
  • 在文件复制/上传未完成时读取文件内容

    例如 每 5 秒 服务器检查文件是否已添加到特定目录 如果是 它会读取并处理它们 相关文件可能非常大 例如 100 Mo 因此将它们复制 上传到上述目录可能会很长 如果服务器尝试访问尚未完成复制 上传的文件怎么办 JAVA是如何管理这些并发
  • CodeIgniter:My_Lang 中的 get_instance

    我发现这个有用的国际化代码 http pastebin com SyKmPYTX http pastebin com SyKmPYTX 一切正常 除了我无法在此类中使用 CI 函数 我想从 DB 设置 languages 和 special
  • 如何在 C 中调用采用匿名结构的函数?

    如何在 C 中调用采用匿名结构的函数 比如这个函数 void func struct int x p printf i n p x 当提供原型的函数声明在范围内时 调用该函数的参数必须具有与原型中声明的类型兼容的类型 其中 兼容 具有标准定
  • 有没有一个 PHP 函数可以交换两个变量的值?

    比如说我有 var1 ABC var2 123 在某些条件下我想像这样交换两者 var1 123 var2 ABC 是否有一个 PHP 函数可以执行此操作 而不必创建第三个变量来保存其中一个值 然后重新定义每个值 就像这样 var3 var
  • 在 C++ 中检查文件是否存在的最佳方法是什么? (跨平台)

    我已阅读以下答案检查 C 中文件是否存在的最佳方法是什么 跨平台 https stackoverflow com questions 230062 whats the best way to check if a file exists i

随机推荐

  • luffy-06

    这里写目录标题 一 上节回顾二 今日内容1 ssh链接和https链接2 gitlab3 git远程分支合并4 git冲突出现原因及解决5 首页登录注册vue页面Header vueLogin vue 6 登录注册功能接口分析 一 上节回顾
  • luffy-07

    这里写目录标题 一 昨日回顾二 今日内容1 登录注册前端页面1 1Login vue1 2Register vue1 3Header vue 2 多方式登录接口3 手机号是否存在接口3 1路由层user urls py3 2user ser
  • luffy-08

    这里写目录标题 一 集成了腾讯短信 封装 luffyapi lib t sms settings pyluffyapi lib t sms sms py 二 短信验证码接口2 1路由 配置2 2视图 三 短信登录接口3 1视图3 2序列化类
  • luffy-09/redis

    这里写目录标题 一 昨日回顾二 今日内容1 redis介绍2 redis的Windows安装和配置3 普通链接和连接池3 1代码3 2redis pool py 4 redis之string操作5 redis之hash操作 一 昨日回顾 s
  • luffy-10/redis/celery简单介绍

    这里写目录标题 一 昨日回顾二 今日内容2 1redis之列表操作2 2 redis之其他操作2 3 redis之管道2 4 django中使用redis2 4 1通用方案redis pool pyviews py 2 4 2django提
  • luffy-11/celery

    这里写目录标题 一 昨日回顾二 今日内容1 celery基本使用2 celery多任务结构多任务结构小案例 3 高级使用之延时任务4 高级使用之定时任务5 django中使用celery6 首页轮播图定时更新6 1首页轮播图走redis缓存
  • luffy-12/课程页面前端,课程表数据录入,课程表分析,编写

    这里写目录标题 一 昨日回顾二 今日内容2 1课程页面前端2 2课程表分析 编写修改之前的一些数据 2 3课程表数据录入2 4课程分类接口 一 昨日回顾 span class token number 1 span celery span
  • luffy-13/课程接口,课程详情前台

    这里写目录标题 一 课程接口1 1 course serializer py1 2 course models py1 3course pagenation py1 4course SearchByName py1 5course view
  • luffy-14/课程详情,课程章节接口,课程详情前台,七牛云对象存储托管视频

    这里写目录标题 一 课程详情接口 课程章节接口1 1课程详情接口1 2课程章节接口1 3序列化类1 4路由 二 课程详情前台三 七牛云对象存储托管视频四 区间过滤 一 课程详情接口 课程章节接口 span class token numbe
  • luffy-15/区间过滤,搜索功能前端后端,支付宝

    这里写目录标题 一 区间过滤二 搜索功能2 1后端代码2 2前端搜索页面2 2 1views SearchCourse vue2 2 2router index js2 2 3components Header vue 三 支付宝3 0结构
  • QT工程:error: undefined reference to `QSerialPort::QSerialPort(

    问题 xff1a qt中使用QSerialPort时报错 error undefined reference to 96 QSerialPort QSerialPort 解决办法 xff1a 工程文件 pro里增加 xff1a QT 43
  • luffy-16/订单表设计,立即付款接口/前端,支付成功get回调用户展示,支付成功post回调修改订单状态

    这里写目录标题 一 昨日回顾二 今日内容1 订单表设计2 立即付款接口 一堆校验 登录后 2 1视图类2 2序列化类2 3自定义异常类2 4配置文件2 5路由 3 立即付款前端4 支付成功get回调用户展示4 1luffycity src
  • luffy-17/上线

    这里写目录标题 一 上节回顾二 今日内容1 购买阿里云服务器2 服务器配置 软件安装2 1更新系统软件包2 2安装mysql2 3安装redis2 4安装python3 62 5配置pip源 xff1a 阿里云不用配置 xff0c 默认配置
  • bs4遍历文档树,搜素文档树,find_all参数,selenium,模拟登陆百度

    这里写目录标题 一 昨日回顾二 今日内容1 bs4遍历文档树2 bs4的搜索文档树3 find all的其他参数4 css选择器5 selenium的介绍6 selenium的使用7 模拟登陆百度8 selenium的其他使用 一 昨日回顾
  • xpath的使用,selenium爬取京东商品信息,scrapy介绍,安装及使用

    这里写目录标题 一 xpath的使用二 selenium爬取京东商品信息三 scrapy的架构3 1scrapy的架构3 2目录介绍 四 scrapy的简单使用 一 xpath的使用 span class token number 1 sp
  • go语言值变量命名规范,定义变量,数据类型,常量,函数基础,函数高级

    这里写目录标题 一 昨日回顾二 今日内容1 变量命名规范2 变量代码演示 3 类型代码演示 4 常量5 函数基础6 函数高级 一 昨日回顾 span class token number 1 span redis高级 span class
  • 串口接收一帧数据及解析

    3 xff0e 下位机中的数据接收和协议解析 下位机接收数据也有两种方式 xff0c 一 等待接收 xff0c 处理器一直查询串口状态 xff0c 来判断是否接收到数据 二 中断接收 两种方法的优缺点在此前的一篇关于串口通信的文章中详细讨论
  • <string>库常用的函数

    include lt string h gt 库包含字符串处理函数 xff0c 常用的有strcpy strcat strcmp strchr等 1 strcpy是字符串赋值函数 char strcpy char target char s
  • APM(Ardupilot)——电机输出流程图

    电机类声明 xff1a system cpp void Copter allocate motors void switch AP Motors motor frame class g2 frame class get if FRAME C
  • C++中的三个特殊宏:__FILE__,__FUNCTION__和__LINE__

    C 43 43 中的三个特殊宏 xff1a FILE xff0c FUNCTION 和 LINE 1 FILE 宏 FILE 宏用于检查当前文件名 xff0c 例如 xff1a include lt cstdio gt using name