• 第2章 对象的创建与使用


      语言的翻译过程

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

      分段编译工具

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

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

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

  • 相关阅读:
    SQL Server查询死锁并KILL
    android之Widget01
    android之RatingBar控件用法
    android之SeekBar控件用法
    android之ExpandableListActivity
    【原创】开源.NET排列组合组件KwCombinatorics使用(一)—组合生成
    【吐槽】博客园新的原创文章在搜索引擎的排名不及转载的站点
    【资源】108个大数据文档PDF开放下载-整理后打包下载
    【原创】.NET平台机器学习组件-Infer.NET连载(二)贝叶斯分类器
    【原创】.NET平台机器学习组件-Infer.NET连载(一)介绍
  • 原文地址:https://www.cnblogs.com/sheshiji/p/3427372.html
Copyright © 2020-2023  润新知