expert C Programing notes

1、寻常算术转换 在运算中 如果其中一个操作数是long double 则另一个转为long double,其次 如果有一个为double 则另一个转为double,再次 float 、 unsigned long int 、 long int、 unsigned int 、 int

 

2、sizeof 的返回值类型为 unsigned int 

 

3、NUL为ascii码 \0 英文空字符 NULL为空指针

 

4、C语言中的符号重载

 

5、#define banana int 与 typedef int banana2 区别

区别1:宏定义的类型名可以用其他类型说明符修饰,如 unsigned banana a;是正确的。而unsigned banana2 b;是错误的

区别2:typedef定义的类型能够保证声明中所有变量均为同一类型,而宏定义则不行。

例如 #define bear int *;bear a,b;宏扩展后为 int * a,b;a和b的类型并不相同。

 

6、始终将-l函数库选项放在编译命令行的最右边。

7、setjmp longjmp 操纵过程活动记录实现,程序执行的跳转。先执行setjmp 记录执行现在的位置。longjmp回退到记录的执行位置

 

 

posted @ 2014-02-09 13:55  bigbigtree  阅读(201)  评论(0编辑  收藏  举报