利用 __FILE__, __LINE__输出debug信息

2023-05-16

#include <stdio.h>

#define __DEBUG__

#ifdef __DEBUG__
#define DEBUG(format,...) printf("File: "__FILE__", Line: %05d: "format"\n", __LINE__, ##__VA_ARGS__)
#else
#define DEBUG(format,...)
#endif

int main(int argc, char **argv) {
    char str[]="Hello World";
    DEBUG("A ha, check me: %s\n",str);
    printf(__FILE__);
    printf("\n%d",__LINE__);
    return 0;
}


    IplImage* init_img;  
    IplImage*** gauss_pyr, *** dog_pyr;  
    CvMemStorage* storage;  
    CvSeq* features;  
    int octvs, i, n = 0,n0 = 0,n1 = 0,n2 = 0,n3 = 0,n4 = 0;  
    int start;  
  
    /* check arguments */  
    if( ! img )  
        fatal_error( "NULL pointer error, %s, line %d",  __FILE__, __LINE__ );  
  
    if( ! feat )  
        fatal_error( "NULL pointer error, %s, line %d",  __FILE__, __LINE__ ); 

先介绍几个编译器内置的宏定义,这些宏定义不仅可以帮助我们完成跨平台的源码编写,灵活使用也可以巧妙地帮我们输出非常有用的调试信息。

ANSI C标准中有几个标准预定义宏(也是常用的):

__LINE__:在源代码中插入当前源代码行号;

__FILE__:在源文件中插入当前源文件名;

__DATE__:在源文件中插入当前的编译日期

__TIME__:在源文件中插入当前编译时间;

__STDC__:当要求程序严格遵循ANSI C标准时该标识被赋值为1;

__cplusplus:当编写C++程序时该标识符被定义。

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

利用 __FILE__, __LINE__输出debug信息 的相关文章

  • 使用正则表达式模式查找 -name 并使用 cp 替换文件名

    目前我正在使用该命令cron复制 data从源到目标路径 find source path name data exec cp target path 源码结构为 source path category1 001 data source
  • C# 将数据写入 CSV 文件

    我正在尝试写入csv使用 C 语言逐行文件 这是我的功能 string first reader 0 ToString string second image ToString string csv string Format 0 1 n
  • 如何分块加载 Pickle 文件?

    是否有任何选项可以批量加载 pickle 文件 我知道我们可以将数据保存在 CSV 中并分块加载 但除了 CSV 之外 是否有任何选项可以批量加载 pickle 文件或任何 python 本机文件 基于Python pickle 的文档 h
  • OpenGL (ES 2.0) 动态改变线宽

    我目前正在使用大量的工具绘制模型GL LINES全部在统一的半径内 我知道glLineWidth将改变半径all线 但它们各自应该有不同的半径 我想知道是否可以使用glLineWidth 以不同的方式 或其他功能 我还应该怎么做呢 将它们渲
  • 将 Eclipse 中的路径/文件名复制到剪贴板

    是否有将当前路径 文件复制到剪贴板的快捷方式 Just select the file tab and hit Ctrl C to copy file basename into clipboard Hit Alt Enter to bri
  • 为什么 Laravel 中的 .env 文件配置不起作用

    DB CONNECTION mysql DB HOST 127 0 0 1 DB PORT 3306 DB DATABASE DB USERNAME root DB PASSWORD 这是我的 laravel 5 4 配置 但 php ar
  • SVG线宽问题

    我开始了我的svg学习 我想用svg线做一些技巧吧 但有件事我不明白 我为每个技能创建 2 行 一行是空的 另一行是知识百分比 问题是 前两行的高度是我给出的笔画宽度的一半 其他线都有很好的高度 这是一个 jsbin http jsbin
  • 是否需要关闭没有引用它们的文件?

    作为一个完全的编程初学者 我试图理解打开和关闭文件的基本概念 我正在做的一项练习是创建一个脚本 允许我将内容从一个文件复制到另一个文件 in file open from file indata in file read out file
  • 根据哈希值确认文件内容

    我需要 检查完整性 content文件数量 文件将写入 CD DVD 可能会被复制多次 这个想法是识别正确复制的副本 在从 Nero 等中删除它们之后 我对此很陌生 但快速搜索表明Arrays hashCode byte http down
  • Python:使用Excel CSV文件仅读取某些列和行

    虽然我可以读取 csv 文件而不是读取整个文件 但如何仅打印某些行和列 想象一下这是 Excel A B C D E State Heart Disease Rate Stroke Death Rate HIV Diagnosis Rate
  • 有没有办法删除 FILE_FLAG_DELETE_ON_CLOSE?

    在我的应用程序中 我想使用 FILE FLAG DELETE ON CLOSE 打开一个临时文件 然而 在某些情况下 临时文件需要保留并且非常大 我想删除打开的句柄上的 FILE FLAG DELETE ON CLOSE 属性 这可能吗 复
  • 对 FileList 对象进行排序

    我正在尝试使用新的文件 API 对输入文件进行排序 它返回的列表似乎是不可变的 var x var files e target files FileList object Loop through the FileList and ren
  • 为什么我需要一块一块地读取文件来缓冲?

    我看到了以下用于将文件放入数组的代码 该数组又用作将其插入 blob 列的 SQL 命令的参数 using FileStream fs new FileStream soubor FileMode Open FileAccess Read
  • 处理大文件的最快方法?

    我有多个 3 GB 制表符分隔文件 每个文件中有 2000 万行 所有行都必须独立处理 任何两行之间没有关系 我的问题是 什么会更快 逐行阅读 with open as infile for line in infile 将文件分块读入内存
  • 来自 csv.read 模拟文件的 rspec 测试结果

    我正在使用 ruby 1 9 并且正在尝试执行 BDD 我的第一个测试 应该在 csv 中读取 有效 但第二个测试 我需要模拟文件对象 却不起作用 这是我的型号规格 require spec helper describe Person d
  • 将文件拆分为块

    我正在尝试分割格式为以下的文件 some garbage lines target G0 S0 type xy 0 108847E 02 0 489034E 04 0 108711E 02 0 491023E 04 0 108574E 02
  • 如何只读取文件的第一行

    我已经用谷歌搜索了一段时间 但我找不到只读取文件第一行的函数 我需要读取文本文件的第一行并从中提取日期 Perl 新手 open my file lt filename txt my firstLine lt file gt close f
  • 通过 HTML5 文件和 URL API 正确创建和提供 PDF Blob

    好吧 假设我有文档数据存储在某处 让我们任意取this pdf http www grida no climate ipcc tar wg1 pdf tar 01 pdf 问题 1 我想要做的是对此 URL 进行 AJAX 调用 因为我需要
  • 读取 .pdb 文件

    我有很多 pdb 格式的文件 其中一些已下载 但到目前为止我无法使用或读取其中的内容 因此我正在寻找如何从 MS Windows XP 读取和查看 pdb 文件格式 有谁知道怎么打开吗 如果您将 PDB 视为调试器使用的 程序数据库 PDB
  • 将文件标记为从 Python 中删除?

    在我的一个脚本中 我需要删除当时可能正在使用的文件 我知道我无法删除正在使用的文件 直到它不再使用为止 但我也知道我可以将该文件标记为由操作系统 Windows XP 删除 我将如何在 Python 中做到这一点 以及另一个不依赖于 pyw

随机推荐

  • postman安装使用教程

    无聊的夜晚 xff0c 没有酒喝 xff0c 也没妹子陪 xff0c 闲来没事研究下postman xff0c 之前接触过有点 xff0c 还不错的工具 先从最基本的开始 postman是谷歌的一款非常好用的工具 xff0c 可用来做手工的
  • 接口测试 requests的身份认证方式

    requests提供多种身份认证方式 xff0c 包括基本身份认证 netrc 认证 摘要式身份认证 OAuth 1 认证 OAuth 2 与 OpenID 连接认证 自定义认证 这些认证方式的应用场景是什么呢 xff1f 身份认证的定义
  • 使用libcurl提交POST请求

    最近在学习libcurl xff0c 并利用它提交POST请求 xff0c 可是返回的响应总是无从验证该次POST请求是否成功提交了 1 先看下根据firebug提交的一次成功的请求 xff0c 这里以login我喜欢上的xiami为例 x
  • TX2安装Realsense -L515相机并在ros下 运行yolo 总结(3)

    前面提到可以移植yolov4到平台上 这里给出几个参考链接 xff0c 重在学习移植方法 xff1a 首先是大佬的 xff1a https span class token operator span span class token op
  • VS2013 配置使用微软开源sdk: C++ REST SDK 及运行官方的 JSON例子

    转至 https blog csdn net sdsabc2000 article details 53706632 utm medium 61 distribute pc relevant none task blog BlogComme
  • Python爬虫学习4:requests.post模拟登录豆瓣(包括获取验证码)

    1 在豆瓣登录网页尝试登录后打开开发者工具 xff0c 可以查找后去Headers和Form Data信息 2 实现代码 import requests import html5lib import re from bs4 import B
  • STM32 | STM32CubeMX基础之USART

    一 USART框图 功能引脚 TX xff1a 发送引脚 xff0c Usart1一般对应PA9 RX xff1a 接收引脚 Usart1一般对应PA10 SW RX xff1a 数据接收引脚 xff0c 只用于单线和智能卡模式 xff0c
  • Android CMake 编译传递宏定义参数

    在做 C 43 43 需求开发时经常会遇到用宏定义来区分不同版本 不同平台的功能 xff0c 如下所示 xff1a ifdef DEBUG 调用 debug 版本方法 elif RELEASE 调用 release 版本方法 endif 在
  • FreeRTOS高级篇2---FreeRTOS任务创建分析

    在FreeRTOS基础系列 FreeRTOS系列第10篇 FreeRTOS任务创建和删除 中介绍了任务创建API函数xTaskCreate xff0c 我们这里先回顾一下这个函数的声明 xff1a BaseType t xTaskCreat
  • 调用百度OCR API实现身份证文字识别

    调用百度OCR API实现身份证文字识别 通过调用百度OCR的两个接口 xff0c 实现身份证图像识别 首先要在百度云注册账号 xff0c 并创建应用 xff0c 以获取AppID xff0c API Key xff0c Secret Ke
  • 一个基于TCP/IP的小项目,实现广播消息的功能。(超详细版)

    1 结合现状 功能分析 该功能基于上个项目的改进 xff0c 主要是通过对服务器端代码的修改 xff0c 以及对客户端作少许修改 xff0c 实现开启多客户端时 xff0c 一个客户端发送消息 xff0c 达到对所有客户端广播的效果 可参考
  • 中断方式和查询方式的区别?

    中断方式 xff1a 是事件触发的 xff0c 换訖只要有事件产生都会进入中断 組取得最优运行 xff0c 因此响应更快 xff0c 及时 查询方式 xff1a 就是在主函数里面不停循环 xff0c 查询端C 状态 xff0c 明显其弊端在
  • [源码解读]position_estimator_inav_main解读(如何启动光流)

    阅读工具 xff1a source insight 技术交流 xff1a zinghd 64 163 com xff0c 757012902 64 qq com 源码版本 xff1a Firmware xff08 原生固件 xff09 如有
  • C++ 程序编译过程:从代码到程序

    在大学课堂上学习 C 43 43 时 xff0c 老师并没有过多涉猎 C 43 43 语法背后的知识 也就是说 xff0c 初学 C 43 43 时 xff0c 哪怕写出了代码 xff0c 我也并不知道从代码到程序的过程中究竟发生了什么 我
  • 05-STM32F1 - 串行通信1-UART(3),printf,scanf重定向

    05 STM32F1 串行通信UART xff0c printf xff0c scanf重定向 在C 语言标准库中 xff0c fputc 函数是printf 函数内部的一个函数 xff0c 功能是将字符ch 写入到文件指针file所指向文
  • 指针作为函数参数 进行内存释放 并置NULL

    author xff1a 张继飞 写在前面 xff0c 前面写了代码封装free函数 xff0c 但是调用封装并退出后 xff0c 指针并不为NULL xff0c 导致接下来以此作为判断条件的时候就出现问题了 先前封装函数为void fre
  • R40 gpio 寄存器地址操作【原创】

    首先要学会看手册 xff0c 下面拿PC来做说明 3 18 3 Register List Module Name Base Address PIO 0x01C20800 Register Name Offset Description P
  • 关于basic认证和digest认证的初步理解

    1 basic认证是把用户和密码通过base64加密后发送给服务器进行验证 2 digest认证则是把服务器响应的401消息里面的特定的值和用户名以及密码结合起来进行不可逆的摘要算法运算得到一个值 xff0c 然后把用户名和这个摘要值发给服
  • STM32中USART的使用方法

    USART作为一种标准接口在应用中十分常见 本文着重分析其作为 UART的配置和应用方法 1 STM32固件库使用外围设备的主要思路 在 STM32中 xff0c 外围设备的配置思路比较固定 首先是使能相关的时钟 xff0c 一方面是设备本
  • 利用 __FILE__, __LINE__输出debug信息

    include lt stdio h gt define DEBUG ifdef DEBUG define DEBUG format printf 34 File 34 FILE 34 Line 05d 34 format 34 n 34