C程序中外部变量与函数关系解惑

C程序由一组对象组成,这些对象包括程序中所使用的变量和实现特定功能的函数。变量可以分为函数内部定义、使用的变量和函数外部定义的变量,通常情况下,把函数内部定义、使用的变量称为内部变量或局部变量,而将在函数外部定义的、供许多函数所使用的变量称为外部变量,一般情况下,也可以称为全局变量。

由于C语言不允许在一个函数中定义其他函数,因此函数本身是外部的。一般情况下,也可以说函数是全局函数。

在缺省情况下,外部变量与函数具有如下性质:所有通过名字对外部变量与函数的引用(即使这种引用来自独立编译的函数)都是引用的同一对象(标准中把这一性质称为外部连接)。

由于外部变量是可以全局访问的,这就为在函数之间交换数据提供了一种可以替代函数变元欲返回值的方法。任何函数都可以用名字来访问外部变量,只要这个名字已在某个地方做了说明或定义。

如果要在函数之间共享大量的变量,那么使用外部变量要比使用一个长长的变元表更方便、有效。然而,也可能导致程序在各个函数之间产生太多的数据联系。

外部变量的用途还表现在它们比内部变量有更大的作用域和更长的生存期。内部自动变量只能在函数内部使用,当其所在函数被调用时开始存在,当函数退出时消失。而外部变量是永久存在的,他们的值在从一次函数调用到下一次函数调用之间保持不变。因此,如果两个函数必须共享某些数据,而这两个函数都互不调用对方,那么最为方便的是,把这些共享数据作为外部变量,而不是作为变元来传递。

1、外部变量的定义和使用

根据C语言标准,在程序的所有源文件中,外部变量只能被定义一次,否则会导致重复定义的编译错误。

1.1 外部变量的定义与声明

时间: 2024-10-26 19:51:57

C程序中外部变量与函数关系解惑的相关文章

如何对PHP程序中的常见漏洞进行攻击(上)

程序|攻击 由于原文比较长,而且有相当一部分是介绍文章的背景或PHP的基础知识,没有涉及到PHP安全方面的内容,因此我没有翻译.如果你想了解这方面的知识,请参考原文. 文章主要从全局变量,远程文件,文件上载,库文件,Session文件,数据类型和容易出错的函数这几个方面分析了PHP的安全性,并且对如何增强PHP的安全性提出了一些有用的建议. 好了,废话少说,我们言归正传! [全局变量] PHP中的变量不需要事先声明,它们会在第一次使用时自动创建,它们的类型也不需要指定,它们会根据上下文环境自动确

对PHP程序中的常见漏洞进行攻击

之所以翻译这篇文章,是因为目前关于CGI安全性的文章都是拿Perl作为例子,而专门介绍ASP,PHP或者JSP安全性的文章则很少.Shaun Clowes的这篇文章比较全面地介绍了PHP的安全问题,原文可以在http://www.securereality.com.au/studyinscarlet.txt找到.  由于原文比较长,而且有相当一部分是介绍文章的背景或PHP的基础知识,没有涉及到PHP安全方面的内容,因此我没有翻译.如果你想了解这方面的知识,请参考原文. 文章主要从全局变量,远程文

如何在php服务器程序中实现对POST的结果返回

问题描述 如何在php服务器程序中实现对POST的结果返回 各位大神,我在做一个简单的PHP服务器程序,接收到另一方通过POST发送过来的参数,我对参数进行处理后,返回一个结果值给对方.但是我只知道通过$_POST来获得参数,不知道怎么发送结果值给对方. 解决方案 echo $变量 即可 解决方案二: 是的,对方可以直接获取response信息得到你输出的变量 解决方案三: 你的意思是我在服务器程序中echo $变量了,对方通过POST执行的结果就能收到$变量? 解决方案四: echo exit

如何对PHP程序中的常见漏洞进行攻击_php基础

来源:Chinaasp 之所以翻译这篇文章,是因为目前关于CGI安全性的文章都是拿Perl作为例子,而专门介绍ASP,PHP或者JSP安全性的文章则很少.Shaun Clowes的这篇文章比较全面地介绍了PHP的安全问题,原文可以在http://www.securereality.com.au/stu...arlet.txt找到. 由于原文比较长,而且有相当一部分是介绍文章的背景或PHP的基础知识,没有涉及到PHP安全方面的内容,因此我没有翻译.如果你想了解这方面的知识,请参考原文. 文章主要从

如何对PHP程序中的常见漏洞进行攻击(上)_php基础

如何对PHP程序中的常见漏洞进行攻击(上) 翻译:analysist(分析家) 来源:http://www.china4lert.org 如何对PHP程序中的常见漏洞进行攻击(上) 原著:Shaun Clowes <http://www.securereality.com.au/> 翻译:analysist <http://www.nsfocus.com/> 之所以翻译这篇文章,是因为目前关于CGI安全性的文章都是拿Perl作为例子,而专门介绍ASP,PHP或者JSP安全性的文章则

如何对PHP程序中的常见漏洞进行攻击(上)第1/2页_php技巧

之所以翻译这篇文章,是因为目前关于CGI安全性的文章都是拿Perl作为例子,而专门介绍ASP,PHP或者JSP安全性的文章则很少.Shaun Clowes的这篇文章比较全面地介绍了PHP的安全问题,原文可以在http: //www.securereality.com.au/studyinscarlet.txt找到.  由于原文比较长,而且有相当一部分是介绍文章的背景或PHP的基础知识,没有涉及到PHP安全方面的内容,因此我没有翻译.如果你想了解这方面的知识,请参考原文.  文章主要从全局变量,远

PowerShell中的变量基础知识介绍_PowerShell

本文介绍在PowerShell中,如何使用变量.变量可以存储程序中的数量,比如开发者的赋值.命令的执行结果等. 变量拿来干嘛的,不用我多说了,写过程序的兄弟们都知道:如果程序中没有变量,那真的就不能让程序了!连批处理里面都有变量了,那PowerShell中自然就更不能没有. 1.PowerShell中的变量都是对象 PowerShell中的变量是基于.NET Framework的,所以PowerShell中的变量跟.NET中的变量一样:都是对象,通通都是对象! 复制代码 代码如下: $i=1 $

应用-android中设置支持javascript会引入xss变量到你的程序中,请检查清楚

问题描述 android中设置支持javascript会引入xss变量到你的程序中,请检查清楚 Using setJavaScriptEnabled can introduce XSS vulnerabilities into you application, review carefully. 如何理解上面这句英语啊?? 解决方案 你指的是在webView上设置支持JavaScript么? 解决方案二: @SuppressLint("SetJavaScriptEnabled") 忽略

在MFC单文档程序中,如何在子对话框类中访问视类中的一个变量?

问题描述 在MFC单文档程序中,如何在子对话框类中访问视类中的一个变量? 如题,小弟最近遇到一个问题,新建一个单文档程序,并在其中引入对话框资源.我想在视类的OnDraw()函数中通过响应视类的一个变量的变化来改变视类窗口中图形的状态,而该视类变量的变化是由对话框中的一个控件控制的,这个控件是由旋钮控件和编辑控件捆绑而成的.在网上看了一些资料,试了其中的一些方法,都没能成功.论坛中高手众多,想请热心的高手们给个解决方法,在此先谢过了!能给个相似的例子的更好! 解决方案 要么你把那个变量定义成静态