1、总结define宏定义的注意事项
答:(1)在define定义标识符的时候,最好不要在最后加上分号。(在if else语句中,则会出现问题)
(2)参数列表的左括号必须与name紧邻。如果两者之间有任何空白存在,参数列表就会被解释为stuff的一部分。所以参数不同宏可能会产生意想不到的结果,为了避免这种情况出现,尽量在宏体中加上括号,表示整体。
(3)当预处理器搜索#define定义的符号的时候,字符串常量的内容并不被搜索。
(4)当宏参数在宏的定义中出现超过一次的时候,如果参数带有副作用,那么你在使用这个宏的时候就可能出现危险,导致不可预测的后果。副作用就是表达式求值的时候出现的永久性效果。(如b = ++a,这里b被赋值了,但a自身被改变了,所以a这种写法是有副作用的)
2、十进制87转十六进制,八进制和二进制,115的原码反码和补码
87 ------>0101 0111 ------> 0127 ------> 0x57
二进制 八进制 十六进制
115
原码 0111 0011
反码 0111 0011
补码 0111 0011