bpmn文件的标签为何都以bpmn2开头_C语言之两种作用域:函数的作用域与文件作用域...

2b85f47f2f2237ee4cb4a9e21a31e7ba.png

作用域描述程序中可访问标识符的区域。一个C变量的作用域可以是块作用域、函数作用域、函数原型作用域或文件作用域。

其中,块是用一对花括号括起来的代码区域。例如,整个函数体是一个块,函数中的任意复合语句也是一个块。定义在块中的变量具有块作用域(block scope),块作用域变量的可见范围是从定义处到包含该定义的块的末尾。

另外,虽然函数的形式参数声明在函数的左花括号之前,但是它们也具有块作用域,属于函数体这个块。所以到目前为止,我们使用的局部变量(包括函数的形式参数)都具有块作用域。因此,下面代码中的变量cleo和patrick都具有块作用域:

double blocky(double cleo){    double patrick = 0.0;    ...    return patrick;}

声明在内层块中的变量,其作用域仅局限于该声明所在的块:

double blocky(double cleo){    double patrick = 0.0;    int i;    for (i = 0; i < 10; i++)    {        double q = cleo * i; // start of scope for q        ...        patrick *= q;    }                        // end of scope for q    ...     return patrick;}

在该例中,q的作用域仅限于内层块,只有内层块中的代码才能访问q。

以前,具有块作用域的变量都必须声明在块的开头。C99标准放宽了这一限制,允许在块中的任意位置声明变量。因此,对于for的循环头,现在可以这样写:

for (int i = 0; i < 10; i++)    printf("A C99 feature: i = %d", i);

为适应这个新特性,C99把块的概念扩展到包括for循环、while循环、do-while循环和if语句所控制的代码,即使这些代码没有用花括号括起来,也算是块的一部分。所以,上面for循环中的变量i被视为for循环块的一部分,它的作用域仅限于for循环。一旦程序离开for循环,就不能再访问i。

函数作用域(function-scope)仅用于goto语句的标签。这意味着即使一个标签首次出现在函数的内层块中,它的作用域也延伸至整个函数。如果在两个块中使用相同的标签会很混乱,标签的函数作用域防止了这样的事情发生。

函数原型作用域(function prototype scope)用于函数原型中的形参名(变量名),如下所示:

int mighty(int mouse, double large);

函数原型作用域的范围是从形参定义处到原型声明结束。这意味着,编译器在处理函数原型中的形参时只关心它的类型,而形参名(如果有的话)通常无关紧要。

而且,即使有形参名,也不必与函数定义中的形参名相匹配。只有在变长数组中,形参名才有用:

void use_a_VLA(int n, int m, ar[n][m]);

方括号中必须使用在函数原型中已声明的名称。变量的定义在函数的外面,具有文件作用域(file-scope)。具有文件作用域的变量,从它的定义处到该定义所在文件的末尾均可见。考虑下面的例子:

#include int units = 0;         /* a variable with file scope */void critic(void);int main(void){   ...}void critic(void){   ...}

这里,变量units具有文件作用域,main()和critic()函数都可以使用它(更准确地说,units具有外部链接文件作用域,稍后讲解)。由于这样的变量可用于多个函数,所以文件作用域变量也称为全局变量(global variable)。

翻译单元和文件

我们常常会认为多个文件在编译器中可能以一个文件出现。例如,通常在源代码(.c扩展名)中包含一个或多个头文件(.h扩展名)。头文件会依次包含其他头文件,所以会包含多个单独的物理文件。

但是,C预处理实际上是用包含的头文件内容替换#include指令。所以,编译器把源代码文件和所有的头文件都看成是一个包含信息的单独文件。这个文件被称为翻译单元(translation unit)。描述一个具有文件作用域的变量时,它的实际可见范围是整个翻译单元。如果程序由多个源代码文件组成,那么该程序也将由多个翻译单元组成。每个翻译单元均对应一个源代码文件和它所包含的文件。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/297536.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

集成开放平台标准化连接器之基于OAS3.0的API管理能力

源宝导读&#xff1a;随着企业信息化进程的逐步深入&#xff0c;互联网技术的发展和分布式系统应用的日益广泛&#xff0c;直接导致大量异构系统的存在&#xff0c;这些系统往往各自独立、封闭运行&#xff0c;相互之间不存在或很少存在数据的交互&#xff0c;由于这种应用分割…

数据库设计范式

数据库设计范式 范式的概念和理论是美国著名科学哲学家托马斯库恩(Thomas,Kunn) 提出并在《科学革命的结构》(The Structure of Scientific Revolutions)&#xff08;&#xff11;&#xff19;&#xff16;&#xff12;&#xff09;中系统阐述的&#xff0c;指常规科学所赖以运…

POJ 2533 Longest Ordered Subsequence

解题思路:最长递增子序列 #include <iostream>usingnamespacestd;intmain(){inti,j,k,n,p,q,m,len,num[1000],B[1001]; scanf("%d", &n);for(i0;i<n;i)scanf("%d", &num[i]);for(B[0]-1,B[1]num[0],len1,i1;i<n;i) {for(p0,qlen,m(pq)…

axure 组件_技巧分享 | Axure后台组件制作的全过程

点击上方蓝字&#xff0c;关注行设视觉黑马家族成员原创发布于行设视觉&#xff0c;转载请注明出处。作者 | 时光若刻http://www.woshipm.com/rp/2527010.html大家好&#xff0c;前一段时间我刚刚分享了一篇《打造高品质Axure组件库就是这么简单》&#xff0c;意在分享给大家一…

有没有测试人心里的软件,心理测评,认识自己的有效工具:(二)你做的可能是假的心理测试...

上一篇文章主要介绍了心理测评的基础知识&#xff0c;今天在上一篇的基础上&#xff0c;介绍下网上一些随处可见的心理测评&#xff0c;是如何的错误&#xff0c;以及怎么“迷惑”大家的&#xff1f;网上随便搜的一个阅读量超过10w的"心理"测试&#xff1a;测试他人会…

这相册一出手,哪个长辈搞不定?

1 这相册看着多喜庆看这花多美▼2 不会只有我一个人连最普通的都叠不好吧&#xff1f;▼3 真就史上最惨毕业生连毕业照都不配拥有吗&#xff1f;▼4 看起来经历了很严格的军训▼5 我闺蜜【偷】男票的钱给我买MAC air▼6 在台湾爸比和东北妈妈中间无缝切换▼7 先漱口、后…

医疗大数据:商业保险、移动医疗的崛起,正在形成闭环(二)

以下内容摘自华创证券分析师 吴晓雯、张伟光的《挖掘医疗大数据中的金矿》报告。 接上篇&#xff1a;医疗大数据&#xff1a;商业保险、移动医疗的崛起&#xff0c;正在形成闭环&#xff08;一&#xff09; 三、 商业保险、移动医疗等商业力量的崛起&#xff0c;加速医疗大数据…

WriteComponent,ReadComponent

WriteComponent,ReadComponent 代码 varForm1: TForm1; ms: TMemoryStream;implementation{$R *.dfm}procedureTForm1.Button1Click(Sender: TObject);varaBtn: TButton;beginaBtn :TButton.Create(Self); aBtn.Parent :Self; aBtn.Caption :Test; aBtn.Left :10; ms.WriteComp…

jquery 使用方法

jQuery是目前使用最广泛的javascript函数库。据统计&#xff0c;全世界排名前100万的网站&#xff0c;有46%使用jQuery&#xff0c;远远超过其他库。微软公司甚至把jQuery作为他们的官方库。对于网页开发者来说&#xff0c;学会jQuery是必要的。因为它让你了解业界最通用的技术…

bread是可数还是不可数_雅思官方语法教程之——这个名词到底可不可数?

名词是否可数&#xff0c;是非常隐形的扣分点。考生很可能意识不到自己犯错了&#xff0c;毕竟这是中文里不存在的语法点。这类语法点更应该重点备考。越练习&#xff0c;越熟悉&#xff0c;犯错扣分的几率也就越低。OK进入主题↓语法解释官方对可数和不可数名词的解释如下&…

PostgreSQL 统计所有数据表各自的总行数

一般来说&#xff0c;可以使用 count(*) 来获取具体某张表的总行数&#xff1a;SELECT count(0) FROM t_user;如果想获得所有表的行数信息&#xff0c;可以使用以下 SQL 语句&#xff1a;SELECTrelname,reltuples FROMpg_classCLS LEFT JOIN pg_namespace N ON ( N.oid CLS.re…

google的api key调用次数是多少_Sprint Boot如何基于Redis发布订阅实现异步消息系统的同步调用?...

前言在很多互联网应用系统中&#xff0c;请求处理异步化是提升系统性能一种常用的手段&#xff0c;而基于消息系统的异步处理由于具备高可靠性、高吞吐量的特点&#xff0c;因而在并发请求量比较高的互联网系统中被广泛应用。与此同时&#xff0c;这种方案也带来了调用链路处理…

加密、解密以及Openssl建立私有CA

一、openssl简介 OpenSSL 是一个强大的安全套接字层密码库&#xff0c;囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议&#xff0c;并提供丰富的应用程序供测试或其它目的使用。 SSL:secure socket layer 安全套接层协议 可以在internet提供秘密性的传输。…

密西根州立大学计算机qs分数,2020年QS世界大学排名密歇根州立大学排名第144

2020年QS世界大学排名指标1.Academic Reputation 学术声誉(所占比重为40%)这项指标数据来源于QS学术调查。搜集了80,000多位高校领域大牛对教学和科研方面的意见。这也是世界上类似调查中规模最大&#xff0c;覆盖面最广的。2.Employer Reputation 雇主声誉(所占比重为10%)考察…

全球2%高智商天才必测脑力题!却只有1%的人,能在5分钟内全部做对!

▲ 点击查看说起娱乐圈最“变态”的养娃爸爸&#xff0c;妥妥非吴尊莫属&#xff01;上亿元的学区别墅、几十万学费1年的文莱国际幼儿园、一周7天辅导班、家教、每年1个儿童国际比赛、考证拿奖……1个吴尊绝对抵得上8个海淀妈。前段时间吴尊晒出neinei二年级毕业成绩单&#xf…

IBM软件OEM概览

http://files.cnblogs.com/menghe/IBM%E8%BD%AF%E4%BB%B6OEM%E6%A6%82%E8%A7%88.pdfmenghecn.ibm.com 转载于:https://www.cnblogs.com/menghe/archive/2012/01/26/2329712.html

如何优化 .NET Core 中的 lambda 查询表达式 ?

咨询区 Moutia AYED&#xff1a;我的项目需要构建几个图表&#xff0c;产生图表的 数据源 相对比较复杂&#xff0c;参考如下代码:var resultdb await _dbContext.TimeSheetElements.Where(t > t.UserId userId &&t.Date.Month month && t.Date.Year y…

asp.net中gridview 如果字数太多可以用此方法把字体变短+.....

首先启动一个RowDataBound控件里面在加上一个if ((e.Row.Cells[0].Text).Length > 6) { e.Row.Cells[0].Text (e.Row.Cells[0].Text).Substring(0, 6) "…";//截取文章主题 }//如果是第一列的话用cell【0】 if ((e.Row.Cells[1].Text).Length…

python数据整理_python数据类型整理

Python中常见的数据结构可以统称为容器&#xff08;container&#xff09;。序列&#xff08;如列表和元组&#xff09;、映射&#xff08;如字典&#xff09;以及集合&#xff08;set&#xff09;是三类主要的容器。 一、序列&#xff08;列表、元组和字符串&#xff09; 序列…

爬取三千条数据需要多久_存储-性能,IOPS,带宽,吞吐量,1TB数据需要多久写完...

让我们先看一下这三个概念&#xff1a;IOPS (Input/Output Per Second) 即每秒的输入输出量(或读写次数)&#xff0c;是衡量存储介质性能的主要指标之一。IOPS是指每秒钟系统能处理的读写请求数量。 吞吐量&#xff08;Throughput &#xff09;衡量的是存储介质的数据传输速率&…