C中的经典,经过半个月的时间,慢慢的看了,感觉挺好的!做了点小总结
第4章 连接
4.1 什么事连接器
1-1 典型的连接器把有编译器或汇编器生成的若干个目标模块,整合成为一个载入模块或可执行文件的实体,该实体能被操作系统直接执行。其中某些目标模块是直接作为输入,某些事从库文件中取得提供给连接器的。
1-2连接器是独立于C实现的, C中要提供lint程序(捕获连接器中与C有关的错误),一定要使用。
1-3 程序中,每个外部变量未被声明为static就是一个外部对象。
Static 可以将变量,函数声明为static类型,这样子就保证相关变量只能够相同源文件的函数调用,防止了函数,变量名的冲突!
如果一个函数在被定义或声明之前被调用,那么它的返回值类型默认为整数型。
4.2 声明与定义
2-1 int a要在所有函数体之外,它被称为外部对象a的定义,并为a分配存储空间,初始化为0。extern int a,不是对a的定义,显式的说明a的存储空间是其他地方分配的。从连接器角度看,是对外部对象的显式引用,其他地方必须存在语句int a这个外部变量。严格的说每个外部变量只能够定义一次。如重复定义可能显式程序错误或几个源文件中共享a的一个实例。
4.3 命名冲突与static修饰符
3-1 static 把定义的变量和函数作用域限制在一个源文件中,对于其他源文件不可见。
4.4 形参、实参与返回值
4-1 任何C函数都有一个形参列表,列表中每个参数都是一个变量。调用函数时将实参列表传递给被调用函数。对于某些函数形参为空,被调用时实参列表也为空。
4-2 任何C函数都用返回类型,要么是void,要么是函数生成结果的类型。main函数返回值是来告诉操作系统该函数执行的是成功还是失败(典型 0 代表成功,1代表失败),如main函数并无返回值,那么有可能看上去执行失败或得到令人惊讶的结果。
4-3 一个函数在调用之前要进行定义或声明。否则它的返回值类型就默认为整形。
4-4 一个函数只有在没有float、short、char类型的参数时,才可以在函数声明中省略参数类型的说明。这样同样依赖于调用者能提供数目正确的实参。
4-5 printf 、scanf 在不同情况下可接受不同类型的参数,特别容易出错。
例:#include <stidio.h>
Main()
{
int i;
char c;
for (i=0;i<5;i++)
{
scanf(“%d”,&c);
printf(“%d”,i);
}
}
程序中scanf要求读入一个整数,传递给它一个指向整型的指针,而c却被声明成char
搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新资格考试认证《C陷阱与缺陷》笔记(6)全文阅读和word下载服务。
相关推荐: