Chinaunix首页 | 论坛 | 博客
  • 博客访问: 328077
  • 博文数量: 57
  • 博客积分: 146
  • 博客等级: 入伍新兵
  • 技术积分: 769
  • 用 户 组: 普通用户
  • 注册时间: 2012-05-29 14:57
文章分类
文章存档

2014年(39)

2013年(13)

2012年(5)

我的朋友

发布时间:2014-06-16 14:08:56

在C中,translation unit(翻译单元)也可称为compilation unit(编译单元),translation unit是C预处理后的输出,即一个源文件经过预处理后。经过translation unit后产生一个目标文件(比如.c通过编译产生.o文件)。预处理包括:1.扩张的源文件以递归方式用指令中申明的字面文件取代所有#include指令(通常是头文件,但.........【阅读全文】

阅读(5343) | 评论(0) | 转发(0)

发布时间:2014-06-16 13:17:43

1.声明对象的存储时间一个对象的存储时间决定了他的生存周期。有三种存储时间:static, automatic,allocated。错误代码:点击(此处)折叠或打开char const *p; void dont_do_this() {    char const str[] = "This will change";.........【阅读全文】

阅读(543) | 评论(0) | 转发(0)

发布时间:2014-06-11 14:58:09

1.用常量(const)或枚举(enum)来声明不可变值一般而言,用const来声明不可变值而不是用宏定义。使用const的话,编译器可以检查对象类型(float, double),对象范围等。对于整型常量,应使用enum(枚举)代替const,可以消除获取整型变量地址可能,同时避免为整型变量分配存储空间。点击(此处)折叠或打开.........【阅读全文】

阅读(490) | 评论(0) | 转发(0)

发布时间:2014-06-10 16:24:02

1.宏的变量名加上括号()点击(此处)折叠或打开#define CUBE(I) (I * I * I)int a = 81 / CUBE(2 + 1); 宏扩展后点击(此处)折叠或打开int a = 81 / (2 + 1 * 2 + 1 * 2 + 1); /* evaluates to 11 */.........【阅读全文】

阅读(370) | 评论(0) | 转发(0)

发布时间:2014-06-10 14:25:10

在能使用宏或inline的情况下,建议使用inline。1.不合理的宏使用点击(此处)折叠或打开#define CUBE(X) ((X) * (X) * (X))int i = 2;int a = 81 / CUBE(++i); a扩展(结果未定义):点击(此处)折叠或打开int a = .........【阅读全文】

阅读(299) | 评论(0) | 转发(0)
给主人留下些什么吧!~~
留言热议
请登录后留言。

登录 注册