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

初学者请问“存储管理”中一个宏定义
#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作强制转换, 因为()和.是同一优先级别的,而结合性是从左到右的,所以()是先结合起来的.

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

相关文章:

你感兴趣的文章:

标签云: