摘要: 宏定义在预处理之前,c预处理器会对代码进行翻译,譬如用blank替换注释,去掉多余的空格,删除末尾的\来拼接行等。例如: int /*注释*/ x;会被翻译成 int x; printf("this is a s\ entence.");会被翻译成printf("this is asentence.");这之后,将会处理预处理指令每个#define由3部分组成:指令#define本身、缩略语(宏)、替换列表(主体)。#define FOUR 2*2#defineFOUR 2 * 2#defineFOUR 2 * 2上面后2个是相同的,替换列表有3个语言符 阅读全文
posted @ 2012-12-10 18:15 天空的凝望 阅读(343) 评论(2) 推荐(0) 编辑
摘要: 按位取反运算符~每位的值取反~(10010110) = 01101001按位与运算符&对应位只有2个操作数都为1结果才为1(10001011)&(10111101)=10001001用法:取掩码我们经常会看到代码中有a & 0xff 就是将低16位之外的位全部置0,仅保留低16位的值按位或运算符|对应位只要有1个操作数为1结果就为1(10001011)|(10111101)=10111111用法:打开位譬如MASK = 0x00000100任意值 rand |= MASK 其实就是将从低位开始第三位设置成1,其它位保持不变按位异或运算符^对应位相同则为0,不相同结果为1 阅读全文
posted @ 2012-12-10 13:36 天空的凝望 阅读(180) 评论(0) 推荐(0) 编辑