我正在学习大与小。
在下面的代码中,| \
的目的是什么?
...
#elif defined(LITTLE_ENDIAN) && !defined(BIG_ENDIAN)
#define htons(A) ((((uint16_t)(A) & 0xff00) >> 8) | \
(((uint16_t)(A) & 0x00ff) << 8))
...
(A)
2.在代码中的用途是什么?
发布于 2009-07-20 16:20:14
“\”是按位或运算符。它基本上结合了这些价值。'A‘是#define中的参数。它被括在括号中,这样表达式就不会混淆程序员或编译器。“\”将宏继续到下一行。(宏通常以行尾结束。)
这个宏接受A中的16位值,并屏蔽前8位.然后,它获取这个值,并将其右移8位。这意味着前8位现在在16位值的底部.接下来,它屏蔽了A中原始值的前8位,并移动了剩下的8位。这意味着底部的8位现在在顶部。最后,它将两个值重新组合为一个值。
最终的结果是,顶部和底部的字节已经被交换了位置。
发布于 2009-07-20 16:16:50
这段代码不过是标准的C-预处理宏.
|
是按位或运算符。\
转义换行符,以便#define
可以继续到下一行。(A)
是宏的参数。
发布于 2009-07-20 16:16:41
对两个整数执行位"OR“\是一个转义字符,它允许#define将cotninue转到下一行。
https://stackoverflow.com/questions/1156666
复制相似问题