VC下的宏定义中的...例如:#define DEBUG(F...) log_debug(__FILE__, __LINE__,F)(这是linux下的代码)如何定义啊? [问题点数:100分,结帖人nanker]

Bbs1
本版专家分:0
结帖率 100%
Bbs1
本版专家分:0
Bbs5
本版专家分:4554
Blank
黄花 2003年2月 C/C++大版内专家分月排行榜第二
Bbs7
本版专家分:16423
Bbs10
本版专家分:188320
Blank
进士 2006年 总版技术专家分年内排行榜第五
2004年 总版技术专家分年内排行榜第八
Blank
银牌 2006年10月 总版技术专家分月排行榜第二
2006年9月 总版技术专家分月排行榜第二
Blank
微软MVP 2006年1月 荣获微软MVP称号
2008年1月 荣获微软MVP称号
2007年1月 荣获微软MVP称号
Blank
铜牌 2006年5月 总版技术专家分月排行榜第三
Bbs9
本版专家分:78495
Blank
进士 2005年 总版技术专家分年内排行榜第九
Blank
微软MVP 2005年9月 荣获微软MVP称号
Blank
红花 2005年2月 VC/MFC大版内专家分月排行榜第一
2005年1月 VC/MFC大版内专家分月排行榜第一
2004年11月 VC/MFC大版内专家分月排行榜第一
Blank
黄花 2005年4月 VC/MFC大版内专家分月排行榜第二
2005年3月 VC/MFC大版内专家分月排行榜第二
关于C++中常用的对DEBUG_NEW、THIS_FILE重定义的说明
//============================================================================= #ifdef _DEBUG // 判断是否<em>定义</em>_DEBUG #<em>define</em> new DEBUG_NEW // <em>定义</em>调试new宏,取代new关键字 #undef THIS_FILE // 取消THIS_FILE的<em>定义</em> static
把qt中的qdebug()定义成C++类型的cout
有时候我们在写Qt程序的时候很烦q<em>debug</em>(),但是我们可以把其<em>宏<em>定义</em></em>成为C++类型的cout。#<em>define</em> cout qDebug()
c语言系统默认宏__VA_ARGS__、__LINE__等用于高效Debug
对于涉及多文件较大规模的程序员而言,在不同地方设置printf()用于查看<em>代码</em>运行进展以及查看距离故障点最近位置是很有用的,但是手动地在系统中插入一个个printf(...),最终版一个个删显然太蠢了。这里介绍一个成体系的Debug函数组。#ifdef _DEBUG #<em>define</em> DEBUG(...) fprintf(stderr, __VA_ARGS__ ) #else #<em>define</em>
定义变参printf
经常在实际的调试过程中,使用最基本的调试方法printf,但是常常需要在print函数中使用参数__FILENAME__、__FUNCTION__、__LINE__,特别是大型的项目中,感觉在编码时重复写入这几个参数有些繁琐,所以很自然的想到了<em>宏<em>定义</em></em>,当然你也可以参照printf函数写自己的My_Printf函数,但是不想费周折就使用<em>宏<em>定义</em></em>吧!<em>代码</em>如下: 环境 标准C99,GNC #defin
debug 输出log控制
/*简单打印调试信息*/ #<em>define</em> DEBUG_SWITCH 1 #ifdef DEBUG_SWITCH #<em>define</em> my_<em>debug</em>(fmt,args...) printf(fmt, ##args) #else #<em>define</em> my_<em>debug</em>(fmt,args...) /*do nothing */ #endif/*错误信息打印:自动打印发生错误时<em>代码</em>所
C/C++语言宏的冷知识,内置宏,__FILE__,__LINE__,##, 可变参的宏...和__VA_ARGS__
当然<em>宏<em>定义</em></em>非常重要的,它可以帮助我们防止出错,提高<em>代码</em>的可移植性和可读性等。 下面列举一些成熟软件中常用得<em>宏<em>定义</em></em> 1,防止一个头文件被重复包含 #ifndef COMDEF_H #<em>define</em> COMDEF_H //头文件内容 … #endif 2,重新<em>定义</em>一些类型,防止由于各种平台和编译器的不同,而产生的类型字节数差异,方便移植。 typedef  unsigne
关于DEBUG调试用的定义
在开发中我们常常需要对数据进行打印操作,这样我们才能更好的将shu'ju
VC中的宏 (#define) 与预处理 (#if/#ifdef/#pragma) 的使用方法总结。
VC 中的宏使用方法参考 MSDN: Macros (C/C++) "src="/CuteSoft_Client/CuteEditor/Images/anchor.gif">"src="/CuteSoft_Client/CuteEditor/Images/anchor.gif">C/C++ 预<em>定义</em>宏^ __LINE__: 当前源文件的行号,整数 __FILE__: 当前源文件名,ch
#define _CLNEW new(__FILE__, __LINE__)记录使用了new的文件名及行号,调试用
//Macro for creating new objects #if <em>define</em>d(LUCENE_ENABLE_MEMLEAKTRACKING) #<em>define</em> _CLNEW new(__FILE__, __LINE__) #<em>define</em> LUCENE_BASE public CL_NS(<em>debug</em>)::LuceneBase #elif <em>define</em>d(LUCENE_EN...
定义中的特殊参数(#、##、...和__VA_ARGS__)+二叉查找树
最近在android的某个<em>代码</em>的头文件中发现很多__VA_ARGS__,google一下.还是比较有用.附带其它<em>宏<em>定义</em></em>参数,一起记录之. 1.    ...和__VA_ARGS__ 看看msdn上给得例子吧 [cpp] view plaincopyprint? #include   #<em>define</em> EMPTY    #<em>define</em> CHECK1(x, ...) i
C语言中的__FILE__、__LINE__和__func__等预定义跟踪调试
标准C语言预处理要求<em>定义</em>某些对象宏,每个预<em>定义</em>宏的名称一两个下划线字符开头和结尾,这些预<em>定义</em>宏不能被取消<em>定义</em>(#undef)或由编程人员重新<em>定义</em>。下面预<em>定义</em>宏表,被我抄了下来。 __LINE__  当前程序行的行号,表示为十进制整型常量 __FILE__  当前源文件名,表示字符串型常量 __DATE__转换的日历日期,表示为Mmm dd yyyy 形式的字符串常量,Mmm是由asctime
VC开发慎用ASSERT
在VC开发过程中,我们会经常使用系统<em>定义</em>的一些宏来帮助我们做调试判断,其中有我们十分常用的TRACE和ASSERT这两个宏。但是,这两个宏一定需要慎用,之前在接手别人的<em>代码</em>时,就因为ASSERT而导致了非常麻烦的问题。现在将ASSERT的一些注意的地方描述出来,以供参考。        ASSERT这个宏是一个断言,用法为ASSERT(条件)。只有当条件为0时,才会触发断言,因此在DEBUG模式
c 语言变参函数log打印
#<em>define</em> LOGE(fmt, args...) _LOGE(fmt, ##args) #<em>define</em> LOG_TAG "TAG" #<em>define</em> _LOGE(fmt, args...) \ do {
基于源码内存泄漏的快速调试方法
可重现内存泄漏调试 1.    调试原理 VS内存泄漏调试基于CRT库的支持,其原理是调用内存分配的另外一个实现实例,从而记录内存分配时的程序信息(包括文件名和行号等)。在程序运行结束时,调用CRT的内存检测函数,定位到第几次分配的内存没有释放。之后设置内存分配函数在相应的次数之后中断,观察函数调用堆栈,从而确定用户<em>代码</em>分配内存的地方。 2.    情景模拟   (1).   在
MFC产生的cpp文件中 DEBUG_NEW 与 THIS_FILE的作用
MFC给你生成的cpp文件里面都有这么几行:    1  #ifdef _DEBUG    2  #<em>define</em> new DEBUG_NEW    3  #undef THIS_FILE    4  static char THIS_FILE[] = __FILE__;    5   #endif   在Visual studio 中通常只用1~3行。 对于这段<em>代码</em>的作用,通常
C语言中的__FILE__、__LINE__和#line(用于打印当前函数及行数)
C语言中的__FILE__用以指示本行语句所在源文件的文件名,举<em>例如</em>下(test.c): #include int main(){printf("%s\n",__FILE__);} 在gcc编译生成a.out,执行后输出结果为: test.c 在windows的<em>vc</em>6.0下编译执行结果为: c:\documents and settings\administr
C/C++ 中宏与预处理使用方法大全 (VC)
C/C++ 中的宏 (#<em>define</em>) 与预处理 (#if/#ifdef/#pragma) 的使用方法大全、使用技巧 开发环境:VC 2005 关键字:宏, 预<em>定义</em>宏, 预处理, 预编译头, VC, #pragma, 编译选项, 程序区段 RTFM: Read The F__king Manual/MSDN 目录 C/C++ 预<em>定义</em>宏 例子:C/C++ 预<em>定义</em>宏的取值C/C++
C文件中debug函数及宏中##的使用
1.redis-3.0\src\redis.h#<em>define</em> redisDebug(fmt, ...) \ printf(&quot;DEBUG %s:%d &amp;gt; &quot; fmt &quot;\n&quot;, __FILE__, __LINE__, __VA_ARGS__) #<em>define</em> redisDebugMark() \ printf(&quot;-- MARK %s:%d --\n&quot;, __FILE__, __...
C/C++中#,##,__FILE__,__LINE__等的用法
/* 在Win 7+GCC下测试通过 */ #include #<em>define</em> CAT(N) X ## N //## 在<em>宏<em>定义</em></em>中将两个字符连接起来,构成一个新的标识符 #<em>define</em> PRINTF_XN(n) printf("X" # n "=%d\n",X ## n); //# 将对应变量字符串化int main() { int i; for(i=0; i<1
C++ assert宏实现原理
assert宏是<em>如何</em>实现的?我很好奇
定义的log打印函数(C++版本,可选打印优先级,可输出到文件,可定义模块标签,可打印所在行数,函数)
log打印函数,功能如讲解如下: 1 可控制宏COUT_LEVEL决定log,输出等级,默认为3,输出ULOGE,ULOGW,ULOGI 2 可控制宏FS_IN是否输出到文件,可通过宏FILE_LEVEL决定输出等级,默认为3,文件路径为当前路径,名字默认为output.log可通过宏FILE_NAME来重新指定 3 宏LOG_TAG输出log所在的模块,可将此宏放到makefile中或.h...
ANSIC几种特殊的标准定义(__FILE__、__LINE__、__STDC__···)
相关标题:__FILE__、__LINE__、__DATE__、__TIME__、__STDC__为方便大家阅读,本文内容已经整理成PDF文件:http://pan.baidu.com/s/1gfHygynⅠ、写在前面对于我们大部分使用单片机进行裸机开发的朋友来说,可能很少有人在程序中许多关键的地方打印一些关键信息。有较大系统开发,或复杂系统开发经验的朋友一般都会在程序中输出很多调试信息,如在UC
一个优秀的debug函数(宏)
调试用的宏<em>debug</em>函数(宏),可以显示你<em>debug</em>所在的文件名,函数名,行号。例子里使用的是基于printf函数来做。纯c<em>代码</em>,不多说了,直接上源码: //t.c #include #<em>define</em> <em>debug</em>(argc,argv...) ({printf("%s:%s:%05d=>",__FILE__,__func__,__LINE__);printf(argc,##argv); })
定义中的特殊参数(#、##、...和__VA_ARGS__)
参考:http://blog.csdn.net/cqupt_chen/article/details/8055215 最近在android的某个<em>代码</em>的头文件中发现很多__VA_ARGS__,google一下.还是比较有用.附带其它<em>宏<em>定义</em></em>参数,一起记录之. 1.    ...和__VA_ARGS__ 看看msdn上给得例子吧
printf的定义版本及多重使用方法
转载:转载出处http://blog.csdn.net/cp1300/article/details/7773239 printf 的<em>宏<em>定义</em></em>版本 前言: 我们在写程序的时候,总是或多或少会加入一些printf之类的语句用于输出调试信息,但是printf语句有个很不方便的地方就是当我们需要发布程序的时候要一条一条的把这些语句删除,而一旦需要再次调
定义来实现条件编译(#define #undef #ifdef)
<em>宏<em>定义</em></em>来实现条件编译(#<em>define</em> #undef #ifdef)
printf 宏 调试技巧
1 前言 printf调试是嵌入式调试的基本手段,而且是非常重要的手段,我认为相比单步调试更加有用有效,特别是单片机之后跑系统,单步调试效率更加低下了,我们在工作遇到bug的时候,我们第一时间就想知道那些该死的日志有没有保存下来,这样好让我们程序员装逼一波把问题解决。 printf<em>宏<em>定义</em></em>调试非常重要,有些日志在开发的时候才需要打开,发布的时候需要关闭,但是在<em>代码</em>上又需要保留下次调试,所以我们在...
C/C++log输出定义示例
第一次发博客,不喜勿喷,谢谢!之前在项目中,发现设备产生的log好乱,或许只有编写<em>代码</em>的人在编写<em>代码</em>的时候才能明确的知道是什么意思吧!作为一个菜鸟来说,Debug似乎很难,如果你要通过log找到其中的当前状态下的<em>代码</em>逻辑或者错误之处,都不是简单的事。我感觉最操蛋的是通过grep -nr ... 搜索log的出处。所以,作为菜鸟的我,尝试写一个log输出的我自己的log输出方法,既方便自己在项目中使...
一个简单的日志类,将打印信息写到文件
因获取当前软件名字和使用互斥锁用了qt的头文件,如不想支持qt,可改成给定文件名,互斥锁可换成windows下或者<em>linux下</em>的互斥锁,或者boost库的锁也行。多线程下写日志会否出现错乱暂未测试,如不能正常工作,可用锁把vsprintf部分和写文件部分锁起来,应该不会再出问题。   log.h头文件内容如下: #ifndef LOG_H #<em>define</em> LOG_H #include
C++零食:使用Unicode版的预定义宏__FUNCTION__
在C++中支持一种预<em>定义</em>宏。比如: __FILE__: 就是当前源<em>代码</em>文件名 __LINE__: 就是当前源<em>代码</em>的行号 这些宏可以在printf等语句中直接作为字符串使用,调试的时候很方便。 如下<em>代码</em>所示: int _tmain(int argc, _TCHAR* argv[]) { printf("Line:%d", __LINE__); return
调试信息的定义:能够打印出文件名、函数、行数、日志,方便调试
#<em>define</em> detail(format, args...) printf("<em>debug</em>[%s|%s|%d]/t"format"/n",__FILE__,__func__,__LINE__,##args) #<em>define</em> info(format, args...)   printf("info[%s|%s|%d]/t"format"/n",__FILE__,__func__,__LINE__,##args) #<em>define</em> warn(format, args...)   printf("warn[%s
C/C++ 中利用debug定义打开/关闭调试输出
<em>debug</em>宏作为调试开关在写程序时,为了调试,经常需要加一些输出语句,等调试完成又得注释掉,如果下次还需要调试还得解注释,十分费时费力,为了解决这个麻烦,可以<em>定义</em>一个<em>debug</em>宏作为调试输出的开关。如下面<em>代码</em>所示:#include int main(void) { int i, sum; for (i = 1, sum = 0; i <= 5; i++) {
define 中强制类型转换及浮点数后面带f
以前遇到的问题,把问题重新整一下,以便查询。
可变参数的定义define(fmt,args...)
在看code时看到下面一段,对args...不太熟悉,所以记录一下 #<em>define</em> PRINT_DEBUG(fmt,args...) do{if(a>b){printf(fmt,##args);}}while(0) args...其实代表可变参数的意思,参数可以是零个,<em>例如</em>在使用时,可以如一下方式: PRINT_DEBUG("hello word\n"); PRINT_DEBUG("%
__FILE__,__LINE__,FUNCTION__实现代码跟踪调试(linux下c语言编程 )
__FILE__,__LINE__,FUNCTION__实现<em>代码</em>跟踪调试(<em>linux下</em>c语言编程 )
C++ 语言定义函数的使用(定义单行和多行)
昨天笔试问的,不会….. 在软件开发过程中,经常有一些常用或者通用的功能或者<em>代码</em>段,这些功能既可以写成函数,也可以封装成为<em>宏<em>定义</em></em>。那么究竟是用函数好,还是<em>宏<em>定义</em></em>好?这就要求我们对二者进行合理的取舍。<em>宏<em>定义</em></em>中允许包含两行以上命令的情形,此时必须在最右边加上”\”且该行”\”后不能再有任何字符,连注释部分都不能有,下面的每行最后的一定要是”\”,”\”后面加一个空格都会报错,更不能跟注释。  我们来看一
在 C/C++ 语言中特定的宏,如 __FUNCTION__
__FILE____LINE____DATE____TIME____FUNC__ __FUNCTION__   在Visual Studio 2005中,默认情况下,此特性是激活的,但不能与/EP和/P编译选项同时使用。请注意在IDE环境中,不能识别__func__ ,而要用__FUNCTION__ 代替。Comeau的用户也应使用 __FUNCTION__ ,而不
CUDA编程的错误处理
转载于CUDA编程的错误处理关于错误处理无论是基于CPU的编程还是基于GPU的编程,当我们调用了一个API运行程序产生了错误,就会导致程序运行结果有悖于理论结果,甚至导致程序崩溃。因此,错误的检测和错误的处理在编程中是极为重要的。当我们能够定位错误的原因,错误的纠正才能更快更准确。Linux C系统编程错误处理我们来回顾一下在Linux系统编程中的错误处理(基于CPU)。在Linux系统编程中,错误
vs和gcc中命令行方式添加定义
VS中添加预处理宏的方法: 除了在.c及.h中添加<em>宏<em>定义</em></em>之外,还可以采用如下方法添加<em>宏<em>定义</em></em>: 1、若只需要<em>定义</em>一个宏(如#<em>define</em> DEBUG),可以右键点击工程属性c/c++预处理器预处理器<em>定义</em>,点击下拉框中的编辑,输入想要<em>定义</em>的宏; 2、如果还需要<em>定义</em>宏的内容(如#<em>define</em> inline __inline),可以右键点击工程属性c/
C语言中的__FILE__、__LINE__和#line用法
C语言中的__FILE__用以指示本行语句所在源文件的文件。 <em>例如</em>: #include int main(){printf("%s\n",__FILE__);} 在gcc编译生成a.out,执行后输出结果为: test.c 在windows的VS2013下编译执行结果为: d:\work\c&c++\project\project1\project1\main.cpp
c语言的__LINE__和其它常用定义
int main() { printf("%d\n",__LINE__);//显示所在行号 printf("%s\n",__func__);//显示所在函数 printf("%s\n",__TIME__);//显示当前时间 printf("%s\n",__DATE__);//显示当前日期 printf("%s\n",__FILE__)
关于VC++中定义的字符串类型
1.PCSTR,LPCSTR _P_:point   指针 _C_:const  常量 _STR_ :string 字符串 PCSTR 就是 const char* 类型 PCSTR的<em>定义</em>处 typedef CONST CHAR *LPCSTR, *PCSTR; _L_:long 长类型 _T_: 这里无意义 LPCTSTR的<em>定义</em>处
VS中添加预处理宏的方法
VS中添加预处理宏的方法:
重构qDebug()<<,使log输出到文件
重构qDebug()< #include #include #include class HSDbg { public: HSDbg& operator<<(const QString& str) { QTextStream t
五、内存管理系统:makefile、整页分配
makefile
定义调试时 省略号(...)和 ##__VA_ARGS__ 的作用
参见例子 #<em>define</em> SHOWINFO_ON #ifdef  SHOWINFO_ON #<em>define</em> showFuncInfo(format_MACRO, ...)  printf(&quot;FILE: %s , LINE: %d: &quot; format_MACRO &quot;\n&quot;,__FILE__, __LINE__,##__VA_ARGS__) #else #<em>define</em> showFuncInfo(fo...
使用__FILE__和__LINE__来定位错误
[前言:使用__FILE__和__LINE__来定位错误已经屡见不鲜,然而其中一些道理又有几个人仔细探究过。本文参考了Curtis Krauskopf的一篇名为Using __FILE__ and __LINE__ to Report Errors 的文章,希望达到解惑之效。]问题:当运行时错误产生时,我怎样才能得到包含C++文件名和行号的字符串信息?回答:在C++中的__FILE__预编译指示器...
Qt中常用定义
1. Q_UNUSED(variable):<em>定义</em>但没有使用的变量在编译的时候有Warning提示,使用Q_UNUSED(variable)后可以屏蔽这类警告。 2. Q_ASSERT(boolvalue):在Debug模式下,如果输入值为true,什么都不做;如果输入值为false,弹出一个对话框,显示__FILE__当前语句所在文件名和__LINE__当前语句所在文件中的行号。 #if !...
C/C++中取消定义
C/C++中可以用 #undef xxx 来取消宏xxx的<em>定义</em>。举<em>例如</em>下 #undef命令可以取消<em>定义</em>一个名称为宏: #undef name  这个命令使预处理器忘记name的所有<em>宏<em>定义</em></em>。取消一个当前未<em>定义</em>宏的<em>定义</em>并不是错误。当一个名称被取消<em>定义</em>之后,就可以向它提供一个全新的<em>定义</em>(使用#<em>define</em>),而不会产生任何错误。在#undef命令内部,并不会执行宏替换。
C51用定义代替printf函数
问题提出 有时候我们想用<em>宏<em>定义</em></em>来决定是编译<em>debug</em>版本的<em>代码</em>还是release的<em>代码</em>,dubug版本的<em>代码</em>会通过printf打印调试信息,release版本的<em>代码</em>则不会。我们总不能对每一条printf都这样写: #if _DEBUG_ printf(&quot;hello world!&quot;); #endif 1 2 3 1 2 3 这样子实在是太麻烦了!万一要各个地方都要打印,会使版面看起来...
java中类似c __LINE__和__FILE__ 宏的功能
C语言里非常有用的宏是__LINE__和__FILE__,能得到当前的文件名和行号. java想实现类似的功能,可以用 [code=&quot;java&quot;] System.out.println( Thread.currentThread().getStackTrace()[1].getFileName()); System.out.println( Thread.currentThread()...
BUG_ON实现分析
传入的参数非法或为空,程序跑到了不可能的分支, 你可以使用 BUG_ON(1) 直接让系统奔溃,并打印当前的文件名,行数,及调用函数栈 问题暴露出来了,就好解决问题了,越早越好 #ifndef BUG_ON #<em>define</em> BUG_ON(cond) assert(!(cond)) #endif BUG_ON其实会调用assert kernel中一般很少直接使用assert,当然u
#undef 去掉定义
#if (!<em>define</em>d(COCOS2D_DEBUG) || COCOS2D_DEBUG == 1) #undef COCOS2D_DEBUG #<em>define</em> COCOS2D_DEBUG 0 #endif通过宏#undef来消除当前宏的<em>定义</em>,从而重新<em>定义</em>宏.由于COCOS2D_DEBUG初始值被<em>定义</em>为1,也就是程序的调试模式,这样可以把当前<em>宏<em>定义</em></em>为0,从而让程序的CCLOG等信息...
C语言预定义宏(__LINE__、__DATE__等)浅析
ANSIC标准<em>定义</em>了以下5种可供C语言使用的预<em>定义</em>宏:  __LINE__ 在源<em>代码</em>中插入当前源<em>代码</em>行号  __FILE__ 在源<em>代码</em>中插入当前源<em>代码</em>文件名  __DATE__ 在源<em>代码</em>中插入当前编译日期〔注意和当前系统日期区别开来〕  __TIME__ 在源<em>代码</em>中插入当前编译时间〔注意和当前系统时间区别开来〕  __STDC__ 当要求程序严格遵循ANSIC标准时该标识符被赋值为1。 
VS中,DEBUG/RELEASE的定义不同引起的问题
  其实以前吾就发现一个怪事,吾一个项目中,DEBUG能正常运行,而RELEASE运行结果就错误。当时初步跟踪了一下,发现是发出的SIP报文不同导致。那么为什么发现的SIP报文不一样?因为其他事情,没有深入研究。   今天调试,一路跟踪,又把整个翻了个底朝天。结果发现,是初始化时少了视频编码CODEC。嗯?不是有注册CODEC的<em>代码</em>吗?最后发现,FFMPEG,DEBUG时为1,RELEASE时为...
断言assert,和#define NDBUG 学习小结
Re:#<em>define</em> NDEBUG是what? 按照字母序首先我们来看看,这个文件提供的接口功能很简单,但却是我们极其常用的功能-断言机制(如果条件为False,则输出Diagnostics信息,然后Abort)。当然在最终产品中使用断言并不是一种好的方法,不过断言是一种很有用的帮助我们调试程序的好工具。 我们一般在程序的调试版本中使用断言机制,一般用来对Input进行Validation
Xcode - 在 Xcode 里添加和使用 Debug 定义
源链接:https://viktyz.gitbooks.io/iosnotebook-gitbook/Notes/Note_00176_20160426.html方案名称Xcode - 在 Xcode 里添加和使用 Debug <em>宏<em>定义</em></em>关键字Xcode \ Debug 模式 \ <em>宏<em>定义</em></em>需求场景需要为工程设置仅在 Debug 模式下有效的<em>代码</em>时参考链接Wutiam - #ifdef 中的逻辑与或操作详...
c++调试帮助(assert、NDEBUG)
c++调试帮助(assert、NDEBUG)
makefile 中定义宏位置需要注意一下
1 CUR_DIR = $(shell pwd) 2 3 CFLAGS = -g -Wall 4 GCC = gcc 5 GXX = g++ 6 7 TARGET = exe.out 8 9 SRC_FILES += $(shell find $(CUR_DIR) -name *.cc) \ 10 += $(shell find $(CU
C++ 日志定义
C++日志<em>宏<em>定义</em></em>,<em>如何</em>将格式化字符串,作为参数传递
调试技巧——定义开关和printf
printf 的<em>宏<em>定义</em></em>版本 前言: 我们在写程序的时候,总是或多或少会加入一些printf之类的语句用于输出调试信息,但是printf语句有个很不方便的地方就是当我们需要发布程序的时候要一条一条的把这些语句删除,而一旦需要再次调试的时候,这些语句又不得不一条条的加上,这给我们带来了很大的不便,浪费了我们很多的时间,也造成了调试的效率低下。所以,很多人
eclipse使用宏设置
安装宏插件 Eclipse没有自带的宏设置,需要添加插件Practical Macro插件,将插件下载到本地。 eclipse中点击菜单Help-&amp;gt;Install New software打开对话框,点击右上边Add按钮,点击Archive按钮选择上一步下载的插件,填写名称点击OK。 重启eclipse,在工具栏上会出现宏设置相关的三个按钮。如下图: 宏使用,以格式化并保存为...
利用宏将__LINE__转成字符串
__LINE__是一个 #<em>define</em> _STR(x) _VAL(x)
define定义中的四个符号:# ## @# \
<em>define</em><em>宏<em>定义</em></em>中的四个符号:# ## @# \第一个符号:#,字符串化(1)3个要点:传进参数、字符串化、#符号在参数名前 (2)举例1: 若,#<em>define</em> change2string(str) #str 则,char *string = change2string(123),变成了char *string = "123" (3)举例2: char *strin
调试中日志打印printf技巧
前言: 我们在写程序的时候,总是或多或少会加入一些printf之类的语句用于输出调试信息,但是printf语句有个很不方便的地方就是当我们需要发布程序的时候要一条一条的把这些语句删除,而一旦需要再次调试的时候,这些语句又不得不一条条的加上,这给我们带来了很大的不便,浪费了我们很多的时间,也造成了调试的效率低下。所以,很多人会选择使用<em>宏<em>定义</em></em>的方式来输出调试语句。 比如,<em>定义</em>一个宏
C/C++调试宏
转载地址:http://blog.chinaunix.net/uid-24866372-id-2128907.html 调试信息的输出方法有很多种, <em>例如</em>直接用printf, 或者出错时使用perror, fprintf等将信息直接打印到终端上, 在Qt上面一般使用qDebug,而守护进程则一般是使用syslog将调试信息输出到日志文件中等等。 使用标准的方法打
C#-#define条件编译
C#-#<em>define</em>条件编译 本文导读: C#的预处理器指令从来不会转化为可执行<em>代码</em>的命令,但是会影响编译过程的各个方面,常用的预处理器指令有#<em>define</em>、#undef、#if,#elif,#else和#endif等等,下面介绍C#中使用#<em>define</em>进行条件编译的实例。 C#中条件编译指令用于按条件包含或排除源文件中的某些部分。在Visual Studio中,会看到被排除的<em>代码</em>显示为
qt各种定义
一、注释:   用“#”注释,表示到行尾均为注释。 二、include:   包含别的文件,<em>例如</em>:include xx.pri。类似于c++的#include。。。 三、平台宏:   win32/macx/unix/linux-g++等,分别对应于windows、mac、unix、linux等系统。 四、作用域:   作用域和“if”语句很像,如果某个条件为真,作用域中的设置就会被处...
定义的去除
中推荐,若之前
C++利用宏动态命名变量名
通常的3个是因为有一个用做隐藏__LINE__ 比如 #<em>define</em> CONNECTION(text1,text2) text1##text2 #<em>define</em> CONNECT(text1,text2) CONNECTION(text1,text2)     int CONNECT(test,1212) = 1212; //  int test1212 = 1212; #def
定义#define的用法
#<em>define</em>是C语言中提供的<em>宏<em>定义</em></em>命令,其主要目的是为程序员在编程时提供一定的方便,并能在一定程度上提高程序的运行效率,但在学习时往往不能理解该命令的本质,总是在此处产生一些困惑,在编程时误用该命令,使得程序的运行与预期的目的不一致,或者在读别人写的程序时,把运行结果理解错误,这对C语言的学习很不利。下面将分别对基本用法和特殊做详细介绍。 一、#<em>define</em>的基本用法 1 #defi
C++ 跨平台编程定义
操作系统判定宏 Windows:   WIN32 Linux:   linux Solaris:   __sun 编译器 VC:  _MSC_VER GCC/G++:   __GNUC__ SunCC:   __SUNPRO_C和__SUNPRO_CC
VC定义 及常用定义说明
END_CATCH    END_CATCH    说明:    标识最后的CATCH或AND_CATCH块的末尾。    END_MESSAGE_MAP    END_MESSAGE_MAP    说明:    使用END_MESSAGE_MAP宏结束用户的消息映射<em>定义</em>    IMPLEMENT_DYNAMIC    IMPLEMENT_DY
c/c++中的换行符“\” 定义\字符串 多行书写时换行
在<em>代码</em>中当一行的<em>代码</em>过多的时候,对于<em>代码</em>的阅读特别不方便,这时,需要使用换行符“\”。在使用换行符的时候要注意两点: 1.c的编译器是根据“;”来判断是否为一个语句的,所以只要不在小括号中换行都是可以的。 2.不要把空格夹在中间!
Makefile 添加定义
在Makefile 中添加<em>宏<em>定义</em></em>可以用来控制源码的编译,通过CFLAGS中的选项-D<em>定义</em>即可,如:CFLAGS += -DG_DEBUG上述即添加了向源码添加了<em>宏<em>定义</em></em>:G_DEBUG。源码中可通过该<em>宏<em>定义</em></em>来进行<em>debug</em>信息的控制,如:#ifdef G_DEBUG printf("<em>debug</em> on...\n"); #endif
c语言中用定义一个常量,数字后面带个U, L, F的含义
U表示该常数用无符号整型方式存储,相当于unsigned int; L表示该常数用长整型方式存储,相当于long F表示该常数用浮点方式存储,相当于float
c#利用定义方便调试代码
利用<em>宏<em>定义</em></em>更方便的调试<em>代码</em>#<em>define</em> DEBUG   // C#的<em>宏<em>定义</em></em>必须出现在所有<em>代码</em>之前。当前我们只让DEBUG宏有效。<em>代码</em>用 #if DEBUG 包裹#if DEBUG ToolsPath = @&quot;D:\workspace\shopstyle\tool&quot;; #else ToolsPath = Environment.CurrentDire...
怎么让VC6.0支持可变参数定义
用不着重载()这样就行:#include &amp;lt;stdarg.h&amp;gt; //包含va_list#include &amp;lt;stdio.h&amp;gt; //包含vsprintf()#include &amp;lt;string.h&amp;gt;#<em>define</em> MyPrtLog CPrtLogFunc(__FILE__,__LINE__).outclass CPrtLogFunc { public:     char...
定义的细节说明">定义中的反斜杠"\"和定义的细节说明
转载自:http://www.wtoutiao.com/p/K6csca.html在阅读C语言<em>代码</em>经常可以看到<em>代码</em>中出现反斜杠”\”,不是很明白它的意思,遂对反斜杠”\”的意义和用法进行查询和总结记录。1. 转义字符非常常用的一种用法,在反斜杠后面加一个字符,表示一些特定的意思,如:\n 换行符(LF)\r 回车(CR) ,相当于键盘上的”Enter”\t 跳到下一个TAB位置\0 空字符(NULL
C++学习笔记之define的多行定义
<em>define</em>的多行<em>定义</em>可以简化<em>代码</em> 在开发当中,我们可能会大量的写一些重复的,甚至具有“危险”的<em>代码</em>,用<em>宏<em>定义</em></em>#<em>define</em>,往往可以简化<em>代码</em>。 <em>define</em>可以替代多行的<em>代码</em>,<em>例如</em>MFC中的<em>宏<em>定义</em></em>(非常的经典,虽然让人看了恶心) #<em>define</em> MACRO(arg1, arg2) do { \ /* declarations */ \ stmt1; \ stmt2; \ /*
你真的了解宏吗:浅谈定义(#define语句)
本文来谈一下宏的<em>定义</em>,宏的用法及一些宏的比较偏门的知识
变长参数的定义
由于变长参数<em>宏<em>定义</em></em>是编译器相关的,为此用条件编译根据编译器类型将<em>宏<em>定义</em></em>隔开。但这种做法会引入重复<em>代码</em>。简单例子如下: #<em>define</em> LOG(fmt, args…) printf(fmt, ##args) #<em>define</em> <em>debug</em>(format, ...) fprintf (stderr, format, __VA_ARGS__)   // pclint检查可能会出现function
Swift3.0 中的仿oc中的定义文件
Swift中取消了#Define这种<em>宏<em>定义</em></em>了,但可以用let来声明常量来取代 首先创建一个common.swift 文件来存放你所<em>定义</em>的<em>宏<em>定义</em></em>内容//当前系统版本 let kVersion = (UIDevice.current.systemVersion as NSString).floatValue // 屏幕宽度 let kScreenW = UIScreen.main.bound
keil(mdk)中定义
一般<em>宏<em>定义</em></em>只有在包含其<em>定义</em>文件的文件中
二、define进行多行定义
#<em>define</em>     DORECOVERY()\                 LED_RUN=1;\                 VAL1=OFF;\                 VAL2=OFF;\                 PUMP=OFF;\                 VAL3=ON;\                
关于linux中DBG定义的使用总结
详细内容可参考:http://blog.csdn.net/songqqnew/article/details/6710634 总结: #ifdef DEBUG    #<em>define</em> DBG(...) fprintf(stderr, " DBG(%s, %s(), %d): ", __FILE__, __FUNCTION__, __LINE__); fprintf(stderr, __VA_A
define进行多行定义
<em>define</em>进行多行<em>宏<em>定义</em></em>#<em>define</em>     DORECOVERY()/               LED_RUN=1;/               VAL1=OFF;/               VAL2=OFF;/               PUMP=OFF;/               VAL3=ON;/               COMPRE=ON;#<em>define</em>
PHP预定义常量__FILE__
目录结构:     --F:\website\webgis\index.php   测试<em>代码</em>:index.php echo "测试输出__FILE__"; echo "".__FILE__; echo "".dirname(__FILE__);   输出结果: 测试输出__FILE__ F:\website\webgis\index.php F:\website\webgis
linux c之使用#define定义多行函数总结
1、用 <em>define</em>的特点       函数:会带来额外的开销,开辟一片栈空间,记录返回地址,将形参压栈,从函数返回还要释放堆栈,这种开销大,函数的参数必须被声明为一种特定的类型。       <em>宏<em>定义</em></em>:<em>代码</em>规模和速度方面都比函数效率更高,不需要规定特定类型。 2、使用规则        除了最后一行,每行末尾加上 \        3、总结       除了最后一行,每
定义(开关)
#<em>define</em> NAME 0/1    (NAME:   DEBUG、WINDOWS;):*相当与一个总开关*; #ifdef NAME 程序一; #else 程序二; #endif
debug宏合集dbg.h
<em>debug</em> 宏合集 #ifdef NDEBUG #<em>define</em> <em>debug</em>(M, ...) #else #<em>define</em> <em>debug</em>(M, ...) fprintf(stderr, "DEBUG %s:%d: " M "\n", __FILE__, __LINE__, ##__VA_ARGS__) //牛逼 #endif #<em>define</em> clean_errno() (errno == 0 ? "None" : strerror(errno)) #<em>define</em> log_err(M, ...) fprintf(stderr, "[ERROR] (%s:%d: errno: %s) " M "\n", __FILE__, __LINE__, clean_errno(), ##__VA_ARGS__) #<em>define</em> log_warn(M, ...) fprintf(stderr, "[WARN] (%s:%d: errno: %s) " M "\n", __FILE__, __LINE__, clean_errno(), ##__VA_ARGS__) #<em>define</em> log_info(M, ...) fprintf(stderr, "[INFO] (%s:%d) " M "\n", __FILE__, __LINE__, ##__VA_ARGS__) #<em>define</em> check(A, M, ...) if(!(A)) { log_err(M, ##__VA_ARGS__); errno=0; goto error; } #<em>define</em> sentinel(M, ...) { log_err(M, ##__VA_ARGS__); errno=0; goto error; } #<em>define</em> check_mem(A) check((A), "Out of memory.") #<em>define</em> check_<em>debug</em>(A, M, ...) if(!(A)) { <em>debug</em>(M, ##__VA_ARGS__); errno=0; goto error; }
c和C++的调试打印输出方法
#<em>define</em>     ERR_DEBUG_SWITCH        1 #ifdef    ERR_DEBUG_SWITCH #<em>define</em> pr_err(fmt,args...) printf("\nFile: Fun:[%s] Line:%d\n "fmt, __FILE__, __FUNCTION__, __LINE__, ##args) #else #<em>define</em> pr_err
acm 头文件及定义
#include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #<em>define</em> lson 2*i #<em>define</em> rso
C语言定义的学习------一个宏代表一段代码
开拓视野,以方便对<em>代码</em>的学习、研读和编写。 1\ #ifdef __MMI_BOOTUP_SCALE__ #<em>define</em> MMI_APP_INIT(func) {U32 start_time, end_time;\                             S8 func_name[] = #func;\                             kal_
jquery/js实现一个网页同时调用多个倒计时(最新的)
jquery/js实现一个网页同时调用多个倒计时(最新的) 最近需要网页添加多个倒计时. 查阅网络,基本上都是千遍一律的不好用. 自己按需写了个.希望对大家有用. 有用请赞一个哦! //js //js2 var plugJs={     stamp:0,     tid:1,     stampnow:Date.parse(new Date())/1000,//统一开始时间戳     ...
C# 编写的windows mobile手机端一维条码识别-仅对清晰图片下载
sourcecode上的源码,稍微改进了下,使得它可以在手机上运行。对于比较清晰的图片可以实现对code128,code39,ean等的解码,而且可以是一页中包含多个条码的情况同时识别多个条码。 不过在手机上速度有些慢! 相关下载链接:[url=//download.csdn.net/download/lulu831110/2153646?utm_source=bbsseo]//download.csdn.net/download/lulu831110/2153646?utm_source=bbsseo[/url]
考勤管理系统 vb+access下载
有详细的源代码 可以运行的系统 功能强大 相关下载链接:[url=//download.csdn.net/download/qw12as12zx12to/2240768?utm_source=bbsseo]//download.csdn.net/download/qw12as12zx12to/2240768?utm_source=bbsseo[/url]
DX 纹理贴图 事例下载
自己最近学习DX游戏开发 自己按照书上的代码实现的 现将其传到网上去 其一跟大家一块分享 其二方便以后查找 我感觉这是一种很好的方法来保存自己曾经所写过的代码 相关下载链接:[url=//download.csdn.net/download/mlinlin/2430350?utm_source=bbsseo]//download.csdn.net/download/mlinlin/2430350?utm_source=bbsseo[/url]
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 如何学习java源码啊 vc人工智能教程
我们是很有底线的