第2章 对象的创建与使用

  语言的翻译过程

  静态类型检查
  类型检查是检查函数参数是否正确使用,以防止许多程序设计错误。由于类型检查是在编译阶段而不是程序运行阶段进行的,所以称之为静态类型检查。

 

  分段编译工具

  程序可由多个文件构成,一个文件中的函数很可能要访问另一些文件中的函数和数据。编译一个文件时,C或C++编译器必须知道在一些文件中的函数和数据,特别是它的名字和基本用法。编译器就是要确保函数和数据被正确地使用。“告知编译器”外部函数和数据的名称及它们的模样,这一过程就是声明。一旦声明了一个函数或变量,编译器知道怎样检查对它们的引用,以确保引用正确。

  声明和定义
  事实上,所有的C/C++程序都要求声明。
  声明是向编译器介绍名字--标识符。它告诉编译器“这个函数或这个变量在某处可找到,它的模样像什么”。而定义是说:“在这里建立变量”或“在这里建立函数”。它为名字分配存储空间。无论定义的是函数还是变量,编译器都要为它们在定义点分配存储空间。对于变量,编译器确定变量的大小,然后在内存中开辟空间来保存变量的数据。对于函数,编译器会生成代码,这些代码最终也要占用一定的内存。
  在C/C++中,可以在不同的地方声明相同的变量和函数,但只能有一个定义。
  定义也可以是声明。如果定义int x;之前,编译器没有发现标识符x,编译器则把这一标识符看成是声明并立即为它分配存储空间。

  连接
  连接器如何查找库
  如果连接器在目标模块列表中不能找到函数或变量的定义,它将去查找库。当编译器在库中找到定义后,就将整个目标模块而不仅仅是函数定义连接到可执行程序。如果想尽量减小程序的长度,当构造自己的库时,可以考虑一个源代码文件只放一个函数,这要求更多的编辑工作,但对于使用者来说是有益的。

posted @ 2013-11-17 00:00  sheshiji  阅读(136)  评论(0编辑  收藏  举报