码迷,mamicode.com
首页 > 编程语言 > 详细

《C程序设计语言》笔记 (十三) 参考手册5

时间:2017-11-15 23:35:01      阅读:186      评论:0      收藏:0      [点我收藏+]

标签:跳转   开始   目的   执行   笔记   合成   操作   复合语句   控制流   

语句

如果不特别声明,语句都是顺序执行的

9.1 带标号语句

带标号的语句


标识符:语句

case 常量表达式:语句

default:语句

由标识符构成的标号声明了该标识符

标识符标号的唯一用途就是作为goto语句的跳转目标

标号本身不会改变程序的控制流

  

9.2表达式语句

大多数表达式语句为赋值语句或函数调用

  

9.3符合语句

static类型的对象仅在程序开始执行前初始化一次

  

9.4 选择语句

if(表达式)  语句

if(表达式) 语句 else 语句

switch(表达式) 语句

  

9.5循环语句

while(表达式) 语句

do 语句 while(表达式);

for(表达式1;表达式2;表达式3)语句

  

9.6跳转语句

goto 标识符;

continue;

break;

return 表达式;

  

10 外部声明

提供给C编译器的处理输入单元称为翻译单元

  

函数定义

函数定义

声明说明符 声明符 声明表 复合语句

声明说明符只能使用存储类说明符extern 或static

函数可以返回算术类型 结构 联合 指针或void类型的值,但不能返回函数或数组类型

  

外部声明

外部声明用于指定对象 函数 及其它标识符的特性

外部 表明他们位于函数外部,并且不直接与关键字extern连接

外部声明的对象可以不指定存储类,也可以指定为extern 或static

如果一个对象或函数声明包含static说明符,则该标识符只具有内部连接

  

11作用域和连接

一个程序的所有单元不必同时进行编译.

源文件可以保持在若干个文件中,每个文件中可以包含多个翻译单元,预先编译过的例程可以从库中进行加载.

程序间函数通讯可以通过调用和操作外部数据来实现

因此,我们需要考虑两种类型的作用域

第一种是标识符的词法作用域,它是体现标识符特性的程序文本区域

第二种是与具有外部连接的对象和函数相关的作用域,它决定各个单独编译的编译单元中标识符之间的连接

  

词法作用域

标识符可以在若干个名字空间中使用而互不影响

如果位于不同的名字空间中,即使是在同一个作用域内,相同的标识符也可用于不同的目的

名字空间包括

对象
函数
类型定义名
枚举常量
标号
结果标记
联合标记
枚举标记
结构和联合成员

在声明外部对象中,对象或函数标识符的词法作用域从其声明的结束位置开始,到所在翻译单元结束为止

函数定义中形式参数的作用域从函数程序块开始处开始,并贯穿整个函数.

函数声明中形式参数的作用域到声明符的末尾处结束

程序块头部中声明的标识符的作用域是其所在的整个程序块

标号的作用域是其所在的函数

  

连接 

在翻译单元中,具有内部连接的同一对象或函数标识符的所有声明都应用同一实体

并且,该对象或函数对这个翻译单元来说是唯一的

具有外部连接的同一对象或函数标识符的所有声明也引用同一实体,并且该对象或函数是被整个程序共享

如果使用了static说明符,则标识符的第一个外部声明将使得该标识符具有内部连接

  

《C程序设计语言》笔记 (十三) 参考手册5

标签:跳转   开始   目的   执行   笔记   合成   操作   复合语句   控制流   

原文地址:http://www.cnblogs.com/dafume/p/7831908.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!