ChinaUnix.net
相关文章推荐:

perl define的用法

做如下几点说明和介绍 1. 带参数的宏只完成简单字符替换,之前不做计算实参的工作,如下 #define SUM(x,y) x+y int a=3,b=2,c=1; int s; s=SUM(a+b,b)*SUM(c,b)+c; 结果应该是 s=a+b+b*c+b+c=10。 2. define中的特殊标识符 #define Conn(x,y) x##y #define ToChar(x) #@x #define ToString(x) #x int a=Conn(12,34); char b=ToChar(a); char c[]=ToString(a); 结果是 a=1234,c='a',c='1234'; 可以看...

by crazytyt - Linux文档专区 - 2009-08-18 13:02:37 阅读(965) 回复(0)

相关讨论

http://www.cnblogs.com/minhost/archive/2009/01/07/1370806.html #define用法 转自http://blog.csdn.net/djsl6071/archive/2007/04/02/1549539.aspx 1.简单的define定义 #define MAXTIME 1000 一个简单的MAXTIME就定义好了,它代表1000,如果在程序里面写 if(i(y)?(x):(y); 这个定义就将返回两个数中较大的那个,看到了吗?因为这个“函数”没有类型检查,就好像一个函数模板似的,当然,它绝对没有模板那么安全就是了。可...

by lin606 - Linux文档专区 - 2009-09-24 11:37:08 阅读(943) 回复(0)

现在想简单设计个日志函数: log_core(file, line, func, hint_format, value, ......); 实行参数可变, 但为了使用方便, 想前面自动填充: #define log(hint_format, value, ....) log_core(__FILE__, __LINE__, __func__, hint_format, value, ....); 但好像可变参数没法define好像不对, 大家有解决方案吗?

by freebarque - C/C++ - 2009-05-07 18:37:55 阅读(2217) 回复(17)

为了支持国产所以经常用baidu.com但是说句心理话,它真没g.cn牛比。 #define A(x) T_##x #define B(x) #@x #define C(x) #x 我们假设:x=1,则有: A(1)------〉T_1 B(1)------〉'1' C(1)------〉"1" 1.简单的define定义 #define MAXTIME 1000 一个简单的MAXTIME就定义好了,它代表1000,如果在程序里面写 if(i 编译器在处理这个代码之前会对MAXTIME进行处理替换为1000。 这样的定义看起来类似于普通的常量定义CONST,...

by sil - Linux文档专区 - 2008-06-30 09:05:41 阅读(505) 回复(0)

看到一个宏:#define DebugLog __file__ = __FILE__, __line__ = __LINE__,DebugLogOut 其中__file__和__line__是char* DebugLogOut是函数。 主要功能就是打印日志,方便编译,请教这里define用法,编译后应该是怎样的呢。

by edward_fu - C/C++ - 2007-10-19 15:39:20 阅读(1564) 回复(4)

在分析u-boot源码发现这样的宏: /* * Macros to transform values * into environment strings. */ #define XMK_STR(x) #x #define MK_STR(x) XMK_STR(x) 从注释来看是把x转换成字符串。 找到了相关的资料,解读了这个define,还顺便认识了另外两个不常用的define #define Conn(x,y) x##y #define ToChar(x) [email=#@x]#@x[/email] #define ToString(x) #x x##y表示什么?表示x连接y,举例说: int n = Conn(123,456)...

by wxmtwfx - Linux文档专区 - 2008-07-15 15:53:10 阅读(537) 回复(0)

我想让str(1...n) 变成str1,str2,str3 .....! 例如 #define MYPRINT(n) printf("%s",str##n); int main() { int i = 0 for(i; i<5; i++) MYPRINT(i); } 可替换后为 printf("%s",stri); 请教,如果我想 printf("%s",str1); printf("%s",str2); /* ...*/ 该怎么做? 补: 如果str(1);没问题! 可如果str(i); i是变量,就出现问题!其实原因我也知道,就是不知道怎么解决 [ 本帖最后由 ccku 于 2008-2-21 11:22 编辑 ]

by ccku - C/C++ - 2008-02-25 18:04:37 阅读(14553) 回复(33)

int EQUATION_COUNTS[] = {3}; #define EQN_COUNT(global_neuron_rank) \ (EQUATION_COUNTS[neuron_types[global_neuron_rank]]) 大家请指教

by sweetass - C/C++ - 2004-07-28 23:45:42 阅读(1782) 回复(3)

#define CLEAN(x) \ srv->x = buffer_init(); CLEAN(response_header); CLEAN(parse_full_path); CLEAN(ts_debug_str); CLEAN(ts_date_str); CLEAN(errorlog_buf); CLEAN(response_range); CLEAN(tmp_buf); srv->empty_string = buffer_init_string(""); CLEAN(cond_check_buf); CLEAN(srvconf.errorlog_file); CLEAN(srvconf.breakagelog_file); CLEAN(srvconf.groupname); CLEAN(srvconf.username); CLEAN(srvc...

by liumilan2009 - C/C++ - 2010-04-22 12:20:08 阅读(1337) 回复(2)

今天整理了一些#define用法,与大家共享! 1.简单的define定义 #define MAXTIME 1000 一个简单的MAXTIME就定义好了,它代表1000,如果在程序里面写 if(i(y)?(x):(y); 这个定义就将返回两个数中较大的那个,看到了吗?因为这个“函数”没有类型检查,就好像一个函数模板似的,当然,它绝对没有模板那么安全就是了。可以作为一个简单的模板来使用而已。 但是这样做的话存在隐患,例子如下: #define Add(a,b) a+b; 在一般使用的时...

by iibull - Linux文档专区 - 2009-02-06 11:41:18 阅读(776) 回复(0)

在C代码里,仅仅有语句 #define 变量名1 #define 变量名2 ... #define 变量名n ,这些变量属于被定义的,还是未被定义的? 如果下面继而出现了代码 #ifdef 变量名1 function1() {/*....*/} #endif ,那么function1()是否会被执行? 根据我手上的代码来看,似乎是function1()不会被执行

by zhitingxie - C/C++ - 2007-11-13 17:39:40 阅读(1505) 回复(7)