用#define 定义的宏换行时应该用 \ 这个反斜杠符合,可是有的代码确是 @@\ 这样的,比如: #define r_info @@\ brc , @@\ code, @@\ name 这样的代码是在rs6000的aix上,用于访问oracle数据库的SQC文件, 上面的宏是在头文件中定义的, 请问谁知道 @@\ 这样的定义是怎么回事,谢谢!!
by jaspersun2 - C/C++ - 2009-08-21 12:53:18 阅读(728) 回复(2)
[CODE]
#include
小弟在看一个图形系统的程序的时候碰到一个问题,这是一个函数的调用 void LCD_SetClipRectMax(void) { LCDDEV_L0_GetRect(&GUI_Context.ClipRect); } LCDDEV_L0_GetRect本来以为是一个函数,谁知找到了 #define LCDDEV_L0_GetRect GUI_Context.pDeviceAPI->pfGetRect 不懂啊,经过了这样一个宏定义以后以上的这句话变成了什么呢? -_-!
今天遇到一个问题
一个从Windows 下 移植的代码, cpp的
里面有一行
[code] std::strcmp("b","a")[/code]
这在g++下无法编译通过,因为strcmp是
linux2.6.14.3 内核中有如下宏定义, [code] #define define(sym, val) \ asm volatile("\n->" #sym " %0 " #val : : "i" (val)) [/code] 没弄清它的用法,于是用如下函数做了一下试验,所得结果更是让人不解。 宏定义中从"\n->"中的"-"开始的后续部分被编译器忽略。gcc提示为 Warning: rest of line ignored; first character is '-. (采用如下格式编译:gcc -o tf tf.c) 程序打印结果为:0。 [code] /*tf.c*/ #includ...
看到了如下的代码: #define DATA_UNSET \ data_type_t type; \ buffer *key; \ int is_index_key; /* 1 if key is a array index (autogenerated keys) */ \ struct data_unset *(*copy)(const struct data_unset *src); \ void (* free)(struct data_unset *p); \ void (* r...
MFC里面看到的: 宏定义:#define ASSERT_VALID(pOb) ((void)0) 使用:在函数里面ASSERT_VALID(your-pointer-parameter),这样替换后就变成了((void)0) 问题:这有什么意义?对指针参数都没有做检测啊~
如题 #define GLOBAL_MISC_DECL(t,a) t a=(t)gMISC_##a 这个宏表示什么意思。 非常感谢。 [ 本帖最后由 lonner 于 2008-9-19 00:29 编辑 ]