外部函数和外部函数 函数一旦定义后就可被另外函数挪用。 但当一个源轨范由多个源文件组成时, 在一个源文件中定义的函数可否被另外源文件中的函数挪用呢?为此,C言语又把函数分为两类:一、外部函数 假如在一个源文件中定义的函数只能被本文件中的函数挪用,而不克不及被同一源轨范另外文件中的函数挪用, 这种函数称为外部函 数。定义外部函数的浅显体式格局是: static 圭臬标准阐明');符 函数名(形参表) 例如:static int f(int a,int b) 外部函数也称为静态函数。但此处静态static 的含义已不是指存储体式格局,而是指对函数的挪用领域只领域于本文件。 因而在不同的源文件中定义同名的静态函数不会惹起搅浑。二、外部函数 外部函数在整个源轨范中都有效,其定义的浅显体式格局为: extern 圭臬标准阐明');符 函数名(形参表) 例如:extern int f(int a,int b)如在函数定义中没有阐明');extern或static则隐含为extern。在一个源文件的函数中挪用另外源文件中定义的外部函数时,应 用extern阐明');被调函数为外部函数。例如:F1.C (源文件一)main(){ extern int f1(int i); /*外部函数阐明');,施展阐发f1函数在另外源文件中*/……}F2.C (源文件二)extern int f1(int i); /*外部函数定义*/{ ……}本章小结1. 函数的分类(1)库函数:由C琐屑供应的函数;(2)用户定义函数:由用户自己定义的函数;(3)有前往值的函数向挪用者前往函数值,应阐明');函数圭臬标准( 即前往值的圭臬标准 );(4)无前往值的函数:不前往函数值,阐明');为空(void)圭臬标准;(5)有参函数:主调函数向被调函数传送数据;(6)无参函数:主调函数与被调函数间罕见据传送;(7)外部函数:只能在本源文件中利用的函数;(8)外部函数:可在整个源轨范中利用的函数。2. 函数定义的浅显体式格局 [extern/static] 圭臬标准阐明');符 函数名([形参表]) 方括号内为可选项。3. 函数阐明');的浅显体式格局 [extern] 圭臬标准阐明');符 函数名([形参表]); 4. 函数挪用的浅显体式格局 函数名([实参表]) 5. 函数的参数分为形参和实参两种,形参呈目前函数定义中,实参呈目前函数挪用中,爆发函数挪用时,把把实参的值传送给形参。6. 函数的值是指函数的前往值,它是在函数中由return语句前往的。7. 数组名作为函数参数时不住手值传送而住手所在传送。形参和实参理想上为同一数组的两个称号。因而形参数组的值爆发改动,实参数组的值当然也改动。8. C言语中,允许函数的嵌套挪用和函数的递归挪用。9. 可从三个方面对变量分类,即变量的数据圭臬标准,变量感染域和变量的存储圭臬标准。在第二章中主要引见变量的数据圭臬标准,本章中引见了变量的感染域和变量的存储圭臬标准。10.变量的感染域是指变量在轨范中的有效领域, 分为部分变量和全局变量。11.变量的存储圭臬标准是指变量在内存中的存储体式格局,分为静态存储和静态存储,施展阐发了变量的生活生活生存期。12.变量分类特性表存储体式格局存储圭臬标准阐明');符那边定义生活生活生存期感染域赋值前的值可赋初值圭臬标准静态存储主动变量 auto 存放器变量 register 函数或复合语句内被挪用时在定义它的函数或复合语句内不定底子圭臬标准int或char外部变量extern函数之外整个源轨范整个源轨范静态部分变量static 函数或复合语句内静态全局变量static 函数之外整个源轨范在定义它的函数或复合语句内在定义它的源文件内0任何圭臬标准版权声明: 原创作品,允许转载,转载时请务必以超链接体式格局标明文章 原始来由 、作者信息和本声明。不然将究查法律责任。