Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 宏的结果是什么?_C - Fatal编程技术网

C 宏的结果是什么?

C 宏的结果是什么?,c,C,有人能告诉我以下宏的结果是什么吗。id为32位 #define ARBITR(id) ((unsigned long)(id) >> 21 & 0x000000ff | \ (unsigned long)(id) >> 5 & 0x0000ff00 | \ (unsigned long)(id) << 11 & 0x00ff0000 | \

有人能告诉我以下宏的结果是什么吗。id为32位

#define ARBITR(id) ((unsigned long)(id) >> 21 & 0x000000ff | \
                    (unsigned long)(id) >>  5 & 0x0000ff00 | \
                    (unsigned long)(id) << 11 & 0x00ff0000 | \
                    (unsigned long)(id) << 27)
#定义仲裁(id)((无符号长)(id)>>21&0x000000ff|\
(无符号长)(id)>>5&0x0000ff00|\

(unsigned long)(id)它将
id
的位洗牌如下:

  • 位27-31包含原始位0-4
  • 位16-23包含原始位5-12
  • 位8-15包含原始位13-20
  • 位0-7包含原始位21-28

要知道它的用途,您必须查看代码的更大用途。

它将
id
的位洗牌如下:

  • 位27-31包含原始位0-4
  • 位16-23包含原始位5-12
  • 位8-15包含原始位13-20
  • 位0-7包含原始位21-28

要了解这一点,您必须了解代码的更大用途。

gcc-E将为you@Mike:我怀疑提问者也想知道宏扩展所产生的表达式的实际用途(以及它可能具有的意义或目的).当然,我只是提供了一个提示。这就是为什么我没有把它放到完整的回答中GCC-E将为you@Mike:我怀疑提问者也想知道宏扩展所产生的表达式的实际用途(以及它可能具有的意义或目的).当然,我只是提供了一个提示。这就是为什么我没有给出完整答案的原因。我猜这是一个哈希宏。我猜这是一个哈希宏。