社区
C语言
帖子详情
请教此语句是啥意思,在线等待
wlxin
2006-11-15 07:21:55
#define ast_test_flag(p,flag) ({ \
typeof ((p)->flags) __p = (p)->flags; \
typeof (__unsigned_int_flags_dummy) __x = 0; \
(void) (&__p == &__x); \
((p)->flags & (flag)); \
})
...全文
377
12
打赏
收藏
请教此语句是啥意思,在线等待
#define ast_test_flag(p,flag) ({ \ typeof ((p)->flags) __p = (p)->flags; \ typeof (__unsigned_int_flags_dummy) __x = 0; \ (void) (&__p == &__x); \ ((p)->flags & (flag)); \ })
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
watermelontx
2006-11-18
打赏
举报
回复
宏定义,,这样定义,可读性太差,,安全方面也不好!
lockhall
2006-11-18
打赏
举报
回复
就是宏定义.定义中的\表示换行.
xiaonong
2006-11-16
打赏
举报
回复
啊,看不懂
处于崩溃中......
怎么这么悬乎呢???
wlxin
2006-11-15
打赏
举报
回复
木脑壳:为什么要那么定义,能说明原因不
再个
typeof ((p)->flags) __p = (p)->flags; 那个__p是啥东东,有啥用
typeof (__unsigned_int_flags_dummy) __x = 0; __x又是啥玩意
(void) (&__p == &__x); 这句话啥意思,有什么用
((p)->flags & (flag)); 这句话有什么用
alan001
2006-11-15
打赏
举报
回复
相当于这句:
------------
({if((p)->flags)__p=(p)->flags;if(__unsigned_int_flags_dummy)__x=0;((p)->flags&flag));})
alan001
2006-11-15
打赏
举报
回复
应该先了解和确定({........})的作用,
比方:
b=({a=1;a=2;});能不能编译通过......................
楼主试一试..........
一分之千
2006-11-15
打赏
举报
回复
#define ast_test_flag(p,flag) ({ \
typeof ((p)->flags) __p = (p)->flags; \
typeof (__unsigned_int_flags_dummy) __x = 0; \
(void) (&__p == &__x); \
((p)->flags & (flag)); \
})
这个是C语言中的预处理语句。c语言中经常会使用#define来代替一个函数的定义 在程序中任何出现ast_test_flag(p,flag)的地方都会自动被 ({ \
typeof ((p)->flags) __p = (p)->flags; \
typeof (__unsigned_int_flags_dummy) __x = 0; \
(void) (&__p == &__x); \
((p)->flags & (flag)); \
})
所替换。
在C++里可以使用内联函数来代替
alan001
2006-11-15
打赏
举报
回复
这句没有意义:(void) (&__p == &__x);
alan001
2006-11-15
打赏
举报
回复
先用 if 代替 typeof 看看编译能不能通过,,
yingge
2006-11-15
打赏
举报
回复
#define ast_test_flag(p,flag) ({ \
typeof ((p)->flags) __p = (p)->flags; \
typeof (__unsigned_int_flags_dummy) __x = 0; \
(void) (&__p == &__x); \
((p)->flags & (flag)); \
})
为什么这样定义宏?似乎下面这样更好些吧
#define ast_test_flag(p,flag) (do{ \
typeof ((p)->flags) __p = (p)->flags; \
typeof (__unsigned_int_flags_dummy) __x = 0; \
(void) (&__p == &__x); \
((p)->flags & (flag)); \
}while(0))
Ninstein
2006-11-15
打赏
举报
回复
宏 没什么高深的
\是换行符
LiChenYue
2006-11-15
打赏
举报
回复
看不懂,蹭点分!
数据库执行SQL
语句
跟踪
不管你是刚学习软件开发的初学者,还是在IT职场打拼多年的职场老鸟,都免不了要同各种数据库打交道,你可能会碰到以下几个问题:1、感觉自己写的sql
语句
没有错,但是执行结果总是不对;2、某个功能执行的
语句
知道有...
oracle循环延时,
请教
oracle pl/sql中延时
语句
的写法
这个包的使用简单研究了一下,是这样:名称 类型 描述ALLOCATE_UNIQUE Procedure 创建锁(如果此锁尚未建立)或者获得锁的标识符(如果此锁已经建立).REQUEST Function 请求锁.CONVERT Function 转换锁的状态.RELEASE ...
请教
问Mybatis 如何打印SQL
语句
请教
问Mybatis 如何打印SQL
语句
我都mybatis 配置 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/
python撤回上一条命令_python 中执行上一句话,
请教
问题,怎么也才能使python执行完上一个命令,再执行下一条
语句
...
请教
问题,怎么也才能使python执行完上一个命令,再执行下一条
语句
正常的批处理文件执行完毕就2113会自动退出,连exit都不5261需要。 你是不是看见执行时4102窗口光标一闪一闪或者闪都不闪1653,虽然在结尾处加了exit,但是不能退出。如果是这样,就说明你的程序有问题,修改一下。如果还不能解决问题,不妨把你的程序发上来看看。 你的程序运行一条命令后会
等待
用户响应,如果不响应就不继续执...
安装mysql时停留在
等待
页面_
请教
: 如何排查一个SQL 执行一直
等待
我在mysql 中执行一条
语句
,半个小时了,
语句
一直出不来,请问各位TX在这种情况下如何排查? 万分感谢!mysql> select version();+--------------------------------------------------+| version() |+---------------...
C语言
69,371
社区成员
243,080
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章