c/c++ c中内部函数和外部函数

函数本质上是全局的,因为一个函数要被另外的函数调用,也可以指定函数不能被其他文件调用。根据能否被其他源文件调用,将函数区分为内部和外部函数。

内部函数:(也称静态函数)

只能被本文件中其他函数所调用。定义内部函数格式如下:

static 类型标识符 函数名(形参表)

如:static int fun(int x,int y)

使用内部函数,可以使函数的作用域只局限于所在的文件,在不同文件中有同名的内部函数,互不干扰。这样不同的人可以分别编写不同的函数,而不必担心所用函数是否会与其它文件中的函数同名,通常把只能有同一文件使用的函数和外部变量放在同一文件中,在它们前面都冠以static使之局部化,其它文件不能引用。

外部函数:

1.定义函数时,在最左端加上关键字extern ,表示函数是外部函数(在C中,省略extern,隐含为外部函数)

extern int fun(int x,int y)

2.在需要调用此函数的文件中,用extern对函数声明,表示该函数是在其他文件中定义的外部函数。

函数原型能够把函数的作用域扩展到定义该函数的文件之外(不必使用extern),只要在使用该函数的每一个文件中包含该函数的函数原型即可。函数原型通知编译系统:该函数在本文件中稍后定义,或在另一文件中定义。

--来自古老的谭浩强版C程序设计。

时间: 2024-10-11 13:45:10

c/c++ c中内部函数和外部函数的相关文章

内部函数和外部函数

1 内部函数 如果一个函数只能被本文件中其它函数所调用,它就成为内部函数,在定义内部函数的时候加上static关键字,有点像java中的private. 即 static 类型标识符 函数名(形参)例如: static int fun (int a); 内部函数又称为静态函数,标明该函数不能被其它文件所引用. 2 外部函数 在定义函数时 加上关键字extern 则表示这个函数式外部函数,可以被别的文件调用,这个关键字可以省略掉 内部函数和外部函数,布布扣,bubuko.com

C语言学习笔记:14_内部函数和外部函数

/* * 14_内部函数和外部函数.c * * Created on: 2015年7月5日 * Author: zhong */ #include <stdio.h> #include <stdlib.h> /** * 所谓的外内部函数:是根据函数能否被其他源谁的调用来区分的: * 一:内部函数:在函数定义时前面加个static (c语言的这个静态函数和java的static方法就差太远了) * 如果一个函数只能被本文件中其它函数调用,它称为内部函数,又叫静态函数 * 只需要在定义

黑马程序员--C语言基础之--变量、内部函数与外部函数

------- IOS培训期待与您交流! ---------- 一.变量 变量代表着一个有名字的.具有特定属性的一个存储单元,运行期间,变量的值是可以改变的.变量必须先定义,后使用.定义时,指定该变量的名字与类型.变量名实际上是以一个名字代表的一个存储地址:而从变量中取值,实际上是通过变量名找到相对应的内存地址,再从该存储单元中读取相对应的数据. 刚刚提到了变量定义这个词,我们知道,在定义函数的时候,我们都会先对函数进行一个声明,这就又引用了一个概念:声明.那么我们先来理解一下什么是声明和定义:

2、变量的声明与定义&amp;内部函数和外部函数

[3]变量的声明与定义 对于函数.声明部分是对有关标识符(变量.函数.结构体)的属性进行声明:函数的声明是函数的原型,而函数的定义是对函数功能的定义.对被调函数的声明是放在主调函数的声明部分,而函数的定义显然不在声明部分的范围内,是独立模块! 对于变量.在声明部分出现的变量有两种情况:需要建立存储空间的(int a;),不需要简历存储空间的(extern a;)前者称定义性声明:后者称引用性声明: [4]内部函数和外部函数 有的函数只能被本文件中的其他函数调用,不能被其他文件中的函数调用:有的只

内部函数外部函数

内部函数: 一个函数只能被本文件中其它函数调用,定义时static void fun(char a, char b){}用于多人协作避免同名 外部函数: 默认extern可省,extern void fun(char a, char b){},可为其他文件函数调用,在其他需要调用fun()的文件先声明extern void fun(char a, char b);表示是从其他文件中定义的外部函数

简答的理解C语言中的各种类型函数

1.变参函数 变长参数的函数即参数个数可变.参数类型不定 的函数.最常见的例子是printf函数.scanf函数和高级语言的Format函数.在C/C++中,为了通知编译器函数的参数个数和类型可变(即是不定的.未知的),就必须以三个点结束该函数的声明. 1 // printf函数的声明 2 int printf(const char * _Format, ...); //const char * _Format是格式控制,控制有多少个%d...,确定输出的个数与类型 3 4 //scanf函数声

用static声明外部变量与内、外部函数

1.用static声明外部变量 若希望某些外部变量只限于被本文件引用,而不能被其他文件引用,可以在定义外部变量时加一个static声明. 例:(file1.c) #include <stdafx.h> #include<stdio.h> void main() { int power(int); int b=3,c,d,n; printf("enter the number a and its power n:\n"); scanf("%d%d&quo

如何在 ejs 模板中使用 helper function 外部函数进行特殊处理?

一般我们想要在 ejs 模板中使用外部函数用于特殊的处理,比如:<%= ellipsis(title, 30) %> 通常的做法是: 使用 app.locals 来定义: app.locals.ellipsis = function(str, len) { return str; } // 使用 <%= ellipsis(title, 20) %> 使用 ejs.filters 来定义,详细用法: var ejs = require('ejs'); ejs.filters.elli

在artTemplate的标签中使用外部函数的方法

第一步,声明函数,并将函数作为data对象的属性.例如: var resArray = new Array(); function beforeRender(data) { //addToArray为想在template的标签中执行的函数 var addToArray = function(id, rec){ resArray[id] = rec; }; data.addToArray = addToArray; } function submit(){ $.ajax({ type : "POS