首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

菜鸟请教“存储管理”中一个宏定义

2012-02-26 
初学者请问“存储管理”中一个宏定义#defineswp_entry_to_pte(x)((pte_t){(x).val})请问这里的{}是什么作用?

初学者请问“存储管理”中一个宏定义
#define   swp_entry_to_pte(x)   ((pte_t){(x).val})
请问这里的{}   是什么作用?

[解决办法]
#define swp_entry_to_pte(x) ((pte_t){(x).val})
首先:(x) ,()是必需的,否则,如果x为指针 *p.val 和(*p).val 显然是不一样的.

其次{(x).val} ,{}是必需的,否则 (pte_t)(x).val 就对(x)作了强制转换,而不是我们想要的对(x).val作强制转换, 因为()和.是同一优先级别的,而结合性是从左到右的,所以()是先结合起来的.

热点排行