看C陷阱与缺陷的一点收获

 
1.       贪心法:每一个符号应包含尽可能多的字符。所以a+++b就不难理解了。
2.       (*(void(*)())0)()的理解 typedef void (*funcptr)(); (*(funcptr)0)()
3.       单目运算符---算术运算符---移位运算符---关系运算符---逻辑运算符
4.       只有&& || ?: ,保证最左到右的求值顺序。而y[i]=x[i++]不能保证先取y+i的地址
5.       两个有符号整数相加,溢出 a+b < 0,不正确,可以将a b都转化成无符号数进行判断。
6.       如果一个函数在声明或者定义前被调用,默认其返回值为整型
7.       如果一个函数没有float short char 类型的参数,在函数 声明中完全可以省略参数类型的说明,函数定义中则需要有。
8.       一个输入操作不能紧跟一个输出操作(对同一文件),反之亦然。如需要,在中间添加fseek函数。 Fseek(fp,0,pos),虽然什么都没做,但是保证正常执行。
9.       setbuf(stdout,buff)将stdout先写入buff,等写满或者调用fflush即可,注意:缓冲区释放
10.   #define error()    cout<<__FILE__<<endl<<__LINE__<<endl;
11.   无符号右移,高位用0补上;有符号,不确定。移位的范围为0~位数-1;用移位替代除法
12.   n=-n 注意,如果n为负数,则有可能出现问题。-2^N ~ 2^N -1

你可能感兴趣的:(c,File,float,FP)