C标准预定义宏,调试时加打印很有用

#include<stdio.h>

int main(int argc, char *argv[])

{
    printf("File:[%s]\r\n", __FILE__);

    printf("Function:[%s]\r\n", __FUNCTION__);

    printf("LineNum:[%d]\r\n", __LINE__);

    printf("Data:[%s]\r\n", __DATE__);

    printf("Time:[%s]\r\n", __TIME__);
}

调试时知道文件和行号,可以很方便地找到打印处,并不会因为相同的打印信息无法区分

__FILE__                 路径和文件名

__FUNCTION__      函数名

__LINE__                行号

__DATE__              日期

__TIME__               时间

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-14 11:24:29

C标准预定义宏,调试时加打印很有用的相关文章

C标准提前定义宏,调试时加打印非常实用

#include<stdio.h> int main(int argc, char *argv[]) { printf("File:[%s]\r\n", __FILE__); printf("Function:[%s]\r\n", __FUNCTION__); printf("LineNum:[%d]\r\n", __LINE__); printf("Data:[%s]\r\n", __DATE__); print

预定义宏,C语言预定义的宏详解

1.预定义宏 对于预定义宏,相信大家并不陌生.为了方便处理一些有用的信息,预处理器定义了一些预处理标识符,也就是预定义宏.预定义宏的名称都是以"__"(两条下划线)开头和结尾的,如果宏名是由两个单词组成,那么中间以"_"(一条下划线)进行连接.并且,宏名称一般都由大写字符组成. 在日常项目编程中,预定义宏尤其对多目标平台代码的编写通常具有重大意义. 通过预定义宏,程序员使用"#ifdef"与"#endif"等预处理指令,就可使

关于标准C语言的预定义宏

标准C语言预处理要求定义某些对象宏,每个预定义宏的名称一两个下划线字符开头和结尾,这些预定义宏不能被取消定义(#undef)或由编程人员重新定义.下面预定义宏表,被我抄了下来.__LINE__  当前程序行的行号,表示为十进制整型常量__FILE__  当前源文件名,表示字符串型常量__DATE__转换的日历日期,表示为Mmm dd yyyy 形式的字符串常量,Mmm是由asctime产生的.__TIME__ 转换的时间,表示"hh:mm:ss"形式的字符串型常量,是有asctime产

C - 常用预定义宏

预定义宏 __DATE__    字符串, 进行预处理的日期("Mmm dd yyyy", 如May 27 2006) __TIME__     字符串, 源文件的编译时间("hh:mm:ss", 如09:11:10) __FILE__      字符串, 代表当前源代码文件名(包含详细路径, 如F:/a.c) __LINE__      整数值, 代表当前源代码文件中的行号 __STDC__    布尔值, 表示该实现严格遵循ANSIC标准 __STDC_VERS

标准预处理器宏

__LINE__:当前源文件中的代码行号,十进制整数. __FILE__:源文件的名称,字符串字面量. __DATE__:源文件的处理日期,字符串字面量.其格式是 mmm dd yyyy(mmm是月份,如:Jan,Feb等):dd是日期,其格式为01到31的数字,一位数字的日期前面加上空格:yyyy是四位数的年份(如 1994). __TIME__:源文件的编译时间,字符串字面量.其格式为hh:mm:ss,这是一个字符串包含小时,分钟,秒数.他们用冒号隔开. __STDC__:这取决于实现方式.

win7,vs2010,asp.net项目中修改外部js文件,在调试时加载的还是旧文件

我杀过 w3wp.exe和asp.net_state的进程,重启 iis admin的服务,都还是不行. 只是把浏览方式设为 内部web browser才会加载到最新的js文件:浏览方式为其它时,加载的js还是旧版的! 解决方案:

C++预定义宏

C/C++宏体中出现的#,#@,##: - #的功能是将其后面的宏参数进行字符串化操作(stringfication),就是对它所引用的宏变量通过替换后在其左右各加上一个双引号 -##被称为连接符(concatenator),用来将两个token连接为一个token.注意这里连接的对象是token就行,而不一定是宏的变量. 举例: Caffe中Layer的创建: #define REGISTER_LAYER_CREATOR(type, creator) \ static LayerRegiste

编译器中和64位编程有关的预定义宏

本文对分别测试VC,MinGW,GCC 三种编译器,32位和64位模式,共6种情况下,和64位编程有关的与预定义宏的值.对跨平台编程具有参考意义. Agner Fog 在他的<Calling conventions for different C++ compilers and operating systems>提到一些预订宏.这里摘录如下. 注:下面的内容来自<Calling conventions for different C++ compilers and operating

[VS调试]VS2010 VS2012调试时显示加载符号导致调试特别慢

下午睡多了,编个小程序(探索形式)搞到现在,遇到一个不爽的问题就是调试时加载很慢,这次百度终于解决了. 打开”调试”–>”选项”看下图: [VS调试]VS2010 VS2012调试时显示加载符号导致调试特别慢,布布扣,bubuko.com