外部函数

  1. 在多文件程序中,如果希望函数的作用域只限于所在源程序文件,即该函数只能被所在源程序文件的其他函数调用,则称为内部函数,在定义内部函数时函数首部须加上关键字static;
  2. 如果希望将函数的作用域扩展到其他源程序文件,则称为外部函数,在引用该外部函数的源程序文件中用关键字extern声明外部函数。
  3. 在定义外部函数时,在函数首部前面加上关键字extern,缺省extern则默认为外部函数。
  4. 在需要调用外部函数的源程序文件中,用关键字extern声明该外部函数。


例子:利用外部函数求两个整数中较大值与较小值的差。

想法:设函数Max求两个整数的较大值,函数Min求两个整数的较小值,主函数调用函数Max和Min求得整数x和y中的较大值max和较小值min,则max-min即为所求。可以将程序分解为3个源文件,其中,源文件func1.cpp完成求两个整数的较大值,源文件func2.cpp完成求两个整数的较小值,程序如下:

/* func1.cpp */ 源程序文件
extern int Max(int x, int y)
{
if (x >= y)
return x;
else
return y;
}

/* func 2.cpp */ 源程序文件
extern int Min(int x, int y)
{
if (x <= y)
return x;
else
return y;
}

主函数源程序文件
#include <stdio.h>
extern int Max(int x, int y);
extern int Min(int x, int y);

int main( )
{
int x, y, max, min ;
printf("请输入两个整数:");
scanf("%d%d", &x, &y);
max = Max(x, y);
min = Min(x, y) ;
printf("最大值与最小值的差是:%d\n", max - min);
return 0 ;
}

原文地址:https://www.cnblogs.com/hello-dummy/p/9164687.html

时间: 2024-08-29 17:38:06

外部函数的相关文章

内部函数外部函数

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

如何在 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

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

函数本质上是全局的,因为一个函数要被另外的函数调用,也可以指定函数不能被其他文件调用.根据能否被其他源文件调用,将函数区分为内部和外部函数. 内部函数:(也称静态函数) 只能被本文件中其他函数所调用.定义内部函数格式如下: static 类型标识符 函数名(形参表) 如:static int fun(int x,int y) 使用内部函数,可以使函数的作用域只局限于所在的文件,在不同文件中有同名的内部函数,互不干扰.这样不同的人可以分别编写不同的函数,而不必担心所用函数是否会与其它文件中的函数同

内部函数和外部函数

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

在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

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

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

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

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

c语言,全局变量,局部变量,外部函数,内部函数,stasic和extern的复习总结

@import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css); 局部变量 定义:在代码块内部定义的变量 作用域:从定义变量的那一行开始,一直到代码块结束 生命周期:从定义变量的那一行开始分配存储空间,代码块结束后,就会被回收 没有默认的初始值 全局变量 定义:在函数外面定义的变量 作用域:从定义变量的那一行开始,一直到文件结尾(能

添加QScintilla时显示无法解析的外部函数

转载请注明出处:http://www.cnblogs.com/dachen408/p/7147165.html 问题:添加QScintilla时显示无法解析的外部函数 解决方案:去掉头文件qsciscintilla.h的Q_OBJECT,编译后再重新添加编译

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

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