社区
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)); \
})
...全文
405
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
打赏
举报
回复
看不懂,蹭点分!
MySQL等 SQL
语句
在线
练习
SQL
语句
在线
练习 http://sample.jimstone.com.cn/xsql/ SQL
语句
测验 http://www.w3school.com.cn/quiz/quiz.asp?quiz=sql sql
语句
练习50题(Mysql版) https://blog.csdn.net/fashion2014/article/details/78826299/ htt...
告别
等待
后端接口,前端使用
在线
mock数据
在如今前后端分离的背景下,时常会出现前端界面开发完成,
等待
后端接口联调的情况。那么有没有什么方式可以有一个后端的模拟数据昵?最 low 也是最直接的方法就是自己在本地写 json 格式的模拟数据。这种方式有个弊端就是,数据没有封装好的话,在切换环境的时候要改业务代码。所以有没有更好的方式昵?
mysql sql
语句
在线
校验
我整理的一些关于【数据】的项目学习资料(附讲解~~)和大家一起分享、学习一下:https://d.51cto.com/eDOcp1MySQL SQL
语句
在线
校验 在当今数据驱动的时代,数据库已经成为了几乎所有应用程序的重要组成部分。MySQL作为一种流行的关系数据库管理系统,因其开源、易用和高性能而广泛应用于各类网站和服...
mysql行锁
等待
分析
总结原因 程序通过UPDATE XX SET WHERE ID IN (a,b,c) 一次性锁大量id,其中某些id被其他session锁住了。当超过innodb_lock_wait_timeout会try restarting transaction 现象 早上来到公司检查公司邮件,发现报错邮件了。 怎么可以忽视, 当然要检查一番。
论文
语句
转换
在线
翻译器
大家好,今天来聊聊论文
语句
转换
在线
翻译器,希望能给大家提供一点参考。论文
语句
转换
在线
翻译器是一种基于互联网的翻译工具,可以帮助学者快速将论文
语句
从一种语言翻译成另一种语言。这些翻译器通常使用机器翻译算法和大量语料库数据来实现翻译过程。与传统的翻译方式相比,论文
语句
转换
在线
翻译器具有便捷、高效和相对廉价的优点。本文将介绍一些常用的论文
语句
转换
在线
翻译器,评估其优缺点,并探讨其未来的发展趋势。
C语言
70,038
社区成员
243,247
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章