Chinaunix

标题: 内核里两个宏的疑问 [打印本页]

作者: unixlanser    时间: 2005-10-26 11:18
标题: 内核里两个宏的疑问
linux/byteorder/swab.h里83行
#ifndef __arch__swab32
#  define __arch__swab32(x) ({ __u32 __tmp = (x) ; ___swab32(__tmp); })
跟到__swab32看到
#define ___swab32(x) \
({ \
     __u32 __x = (x); \
     ((__u32)( \
           (((__u32)(__x) & (__u16)0x000000ffUL) << 24) |
     ....(以下省略)
     ....

我的问题是,经过这样的操作对x的值有影响吗?__arch__swab32(x)宏里调整的是__tmp,到了___swab32(x)宏里又调整了__x,这和最开始的x又有什么关系呢??




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2