extern static和函数
#include <stdio.h>
int sum(int a, int b);
int main()
{
/*************************************************************
* extern static和函数
* 函数可以分为外部函数和内部函数:
* 外部函数:定义的函数能被本文件和其他文件访问
* 1、 默认情况下所有函数都是外部函数
* 2、 不允许有同名的外部函数,即就是几个不同的文件中不能出现相同名字的函数
* 内部函数:定义的函数只能被本文件访问,其他文件不能访问
* 1、 允许不同文件中有同名的内部函数
* static对函数的作用:
* 1、 定义一个内部函数(该函数只能本文件访问static不能省略)
* 2、 声明一个内部函数
* extern对函数的作用:
* 1、 完整地定义一个外部函数
* 2> 完整地声明一个外部函数
* (extern可以省略,默认情况下声明和定义的函数都是外部函数)
*************************************************************/
int a = ;
int b = ;
int c = sum(a, b);
printf("extern sum(20, 30) = %d\n",c); return ;
}
#include <stdio.h>
static int minus(int a, int b);
//该函数可以供其他的文件访问,默认是extern
int sum(int a, int b)
{
int c = minus(, );
printf("static minus(10, 5) = %d\n ", c);
return a + b;
}
//该函数只能本文件进行访问
static int minus(int a, int b)
{
return a - b;
}
static minus(, ) =
extern sum(, ) =
extern static和函数的更多相关文章
- 15-static和extern关键字1-对函数的作用
一.extern与函数 如果一个程序中有多个源文件(.c),编译成功会生成对应的多个目标文件(.obj),这些目标文件还不能单独运行,因为这些目标文件之间可能会有关联,比如a.obj可能会调用c.ob ...
- static和extern关键字 对函数的作用
本文目录 • 一.extern与函数 • 二.static与函数 • 三.static.extern与函数的总结说明:这个C语言专题,是学习iOS开发的前奏.也为了让有面向对象语言开发经验的程序员,能 ...
- const extern static 终极指南
const extern static 终极指南 不管是从事哪种语言的开发工作,const extern static 这三个关键字的用法和原理都是我们必须明白的.本文将对此做出非常详细的讲解. co ...
- 【C语言】19-static和extern关键字1-对函数的作用
一.extern与函数 在前面我提到过一句话:如果一个程序中有多个源文件(.c),编译成功会生成对应的多个目标文件(.obj),这些目标文件还不能单独运行,因为这些目标文件之间可能会有关联,比如a.o ...
- (转)全局变量、extern/static/const区别与联系
全局变量.extern/static/const区别与联系 编译单元(模块): 在IDE开发工具大行其道的今天,对于编译的一些概念很多人已经不再清楚了,很多程序员最怕的就是处理连接错误(LIN ...
- static成员函数
1.static成员函数不能定义为const的,这是因为static成员函数只是全局函数的一个形式上的封装,而且static成员函数不能访问类的非静态成员(没有this)指针,修改非静态数据成员又从何 ...
- C++中的static数据成员与static成员函数
本文要点: 1.static成员它不像普通的数据成员,static数据成员独立于该类的任意对象而存在,每个static数据成员是与类关联的对象,并不与该类的对象相关联! aka:每个static数据成 ...
- c里面的static inline函数
一般来说加上static表示函数是文件作用域,有的时候单独使用inline编译器会优化,没有编译成内联函数,而是变成普通函数编译,所以必须在前面加上static,放在头文件中可以被外部文件访问. ...
- 【编程拾遗】C++的static成员函数与单例模式
static小结 static的引入 static 是C++中非经常常使用的修饰符,它被用来控制变量的存储方式和可见性. 函数内部定义的变量,在程序运行到它的定义处时,编译器为它在栈上分配空间,函数在 ...
随机推荐
- shell 跟踪命令
添加跟踪 set -x 去除跟踪 set +x
- 廖雪峰的git学习笔记
安装完后,每个机器都要自报家门 Config--配置 global--全局参数 配置全局用户名 $git config --global user.name “Your Name” 配置邮箱 ...
- ArcMap属性表操作接口ITableWindow3
ITableWindow3 tableWindow3 = new TableWindowClass { //Layer = laye ...
- docker安装及使用
一.简介 说起docker,大多数人第一时间想起来的应该有虚拟化.云计算,这三者有什么区别呢? 对比: 我们所熟知的虚拟化有KVM.xen.Hyper-V等,这些虚拟化虚拟出来的服务器会产生一个新的操 ...
- eslint 禁用命令
/* eslint-disable */ ESLint 在校验的时候就会跳过后面的代码 还可以在注释后加入详细规则,这样就能避开指定的校验规则了 /* eslint-disable no-new */ ...
- python图像、视频转字符画
python图像转字符画需要用到matplotlib.pyplot库,视频转字符画需要用到opencv库,这里的代码基于python 3.5 图像转字符画需要先将图像转为灰度图,转灰度图的公式是 gr ...
- android中的Serveice组件
创建 配置 Service: 1.定义一个继承了Service类的子类 2.在 AndroidManifest.xml清单文件中对开发的Service进行配置 Service和Activity很相似, ...
- Android开发——回调(Callback)
1. 回调函数的定义: 在A类中定义了一个方法,这个方法中用到了一个接口和该接口中的抽象方法,但是抽象方法没有具体的实现,需要B类去实现,B类实现该方法后,它本身不会去调用该方法,而是传递给A类,供A ...
- android5.1 修改音量键绑定多媒体声音
修改此文件frameworks/base/media/java/android/media/AudioService.java中函数 private int getActiveStreamType(i ...
- Codeforces 1167F 计算贡献
题意:给你一个函数f,计算∑(i = 1 to n)(j = i to n) f(i, j).f(i, j)的定义是:取出数组中i位置到j位置的所有元素,排好序,然后把排好序的位置 * 元素 加起来. ...