Chinaunix首页 | 论坛 | 博客
  • 博客访问: 336818
  • 博文数量: 79
  • 博客积分: 2466
  • 博客等级: 大尉
  • 技术积分: 880
  • 用 户 组: 普通用户
  • 注册时间: 2006-02-07 16:47
文章分类

全部博文(79)

文章存档

2014年(3)

2012年(7)

2011年(14)

2010年(2)

2009年(2)

2008年(2)

2007年(18)

2006年(31)

分类: C/C++

2006-02-17 17:58:07

读《The C Programming Language》。这是一个乍一看很简练很清晰的语言,实际上不是,里面有很多很多容易出错的细节。从开始学C到现在已经九年,重看这本经典著作,还是发现很多自己不太清楚的东西。
 
 
1- 使用外部变量的时候,可以用extern声明,也可以根据上下文省略。例如下面程序中的extern int max; 就是可以省略的:
#include
 
int max;
 
int main() {
  extern int max;
  printf("%d\n", max);
  return 0;
}
 
 
2- 如果一个变量在file1中被定义,在file2, file3中被引用,那么在file2和file3中引用这个变量之前应该用extern声明它。一般的做法是把所有的extern声明集中起来放在一个头文件里,#include一下就行了。
 
 
3- 为了兼容以前的非ANSI C,如int fun(); 这样的函数声明,意思不是“一个不带参数的函数”,而是“老式函数声明和调用,禁止编译器对调用这个函数的语句进行参数类型核对”。例如下面的程序编译可以完全通过,没有错误和警告:
#include
int fun();
 
int main() {
  char c = 'c';
  char *p = &c;
  fun(p);
  return 0;
}
 
int fun(uc)
unsigned char uc;
{
  return -1;
}
所以如果要表示函数“不带参数”,一定要写int fun(void)
 
 
4- ANSI C中可以用const说明常量
 
 
5- 不要用下划线作为变量名字的开头,因为库函数中这样用法很多,可能冲突
 
 
6- C对各种变量的内存使用,没有严格规定。标准只规定short和int类型至少16bit;long至少32bit;且占用的位数short<=int<=long。
 
 
7- 浮点常量缺省类型是double,除非加上后缀f。
阅读(1583) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~