文档章节

第10天C语言(04):static和exetrn对函数-作用

lyh2017iOS
 lyh2017iOS
发布于 2017/07/07 09:59
字数 420
阅读 2
收藏 0
点赞 0
评论 0

#pragma mark static和exetrn对函数-作用 ###pragma mark 概念

###pragma mark 代码 ####"main.c"

#include <stdio.h>
#include "zs.h"
//void demo();
/**
 函数也分为内部函数 和 外部函数
 默认情况下所有的函数都是外部函数
 什么是外部函数? 可以被其他文件访问的函数 称之为 外部函数
 什么是内部函数? 只能在当前文件中访问的函数 称之为 内部函数
 */
int main()
{
    text();
//    demo();
    return 0;
}

#####"zs.h"

void text ();

// 在.h声明一个内部函数没有任何意义
//static void demo();

####"zs.c"

#include "zs.h"
// 定义内部函数 一般用于内部函数定义的后面,而想在定义之前使用内部函数
static void demo();

// 只要在函数的返回值前面加上一个extern就可以函数变成一个外部函数,由于默认就是外部函数.\
    所以在开发中一般情况extern没人写
// 如果extern写在函数的实现中(.c文件),代表定义一个外部函数
// 如果extern写在函数的声明中(.h),代表声明一个外部函数
extern void demo()
{
    printf("text\n");
    demo();
}
void text ()
{
    printf("text\n");
    demo(); // 如果需要使用在 前面声明一下
    
}
/**
 "_demo", referenced from:
 _main in main.o
 意思是 在main.o里面没有找到 demo这个函数
 */

// 只要在函数的返回值 前面加上static就可以让函数变为内部函数,其他文件就不能访问了
// 如果static写在函数的实现中,代表定义一个内部函数
// 如果static写在函数的声明中,代表声明一个内部函数
static void demo()
{
    printf("demo\n");
}

© 著作权归作者所有

共有 人打赏支持
lyh2017iOS
粉丝 1
博文 354
码字总数 137380
作品 0
朝阳
二十、static和extern关键字2-对变量的作用

说明:这个C语言专题,是学习iOS开发的前奏。也为了让有面向对象语言开发经验的程序员,能够快速上手C语言。如果你还没有编程经验,或者对C语言、iOS开发不感兴趣,请忽略 上一讲介绍了stati...

长平狐 ⋅ 2013/03/28 ⋅ 0

C语言关键---static

static 这个关键字,我感觉对很多初级程序源和刚接触程序的同学来说,可能都没有完全理解它的含义。至少对我来说对它的认识不是很清楚。因此对它在次总结一下。主要作为自己的备忘录。 1.st...

jackxu2015 ⋅ 2015/08/14 ⋅ 0

十九、static和extern关键字1-对函数的作用

说明:这个C语言专题,是学习iOS开发的前奏。也为了让有面向对象语言开发经验的程序员,能够快速上手C语言。如果你还没有编程经验,或者对C语言、iOS开发不感兴趣,请忽略 上一讲中大致介绍了...

长平狐 ⋅ 2013/03/28 ⋅ 0

C语言基础-11-static和extern关键字1-对函数的作用

上一讲中大致介绍了变量的类型,不同类型的变量有不同的存储类型、不同的生命周期、不同的作用域。这讲介绍2个比较重要的关键字:static和extern。 static和extern不仅可以用在变量上,还可以...

Corwien ⋅ 2016/03/16 ⋅ 0

C语言基础-12-static和extern关键字2-对变量的作用

上一讲介绍了static和extern对函数的作用,static用来定义一个内部函数,不允许其他文件访问;extern用来定义和声明一个外部函数,允许其他文件访问。static和extern对变量也有作用,不过跟函...

Corwien ⋅ 2016/03/16 ⋅ 0

C/C++中的static和extern关键字

一.C语言中的static关键字 在C语言中,static可以用来修饰局部变量,全局变量以及函数。在不同的情况下static的作用不尽相同。 (1)修饰局部变量 一般情况下,对于局部变量是存放在栈区的,并...

木木情深 ⋅ 2014/02/13 ⋅ 0

static关键字的3大作用

static的作用 在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条。 (1)先来介绍它的第一条也是最重要的一条:隐藏。 当我们同时编译多个文件时,所有未加static前缀的...

长平狐 ⋅ 2012/09/03 ⋅ 0

c语言的一些回顾------关键字之存储类别描述符

c语言的一些回顾------关键字之存储类别描述符 距离大一学C语言已经有三年的时间了,现在大部分内容都记得不是很清楚了,现在突然萌发了重温C语言的想法,古人说的好,温故而知新嘛,虽然这个...

ido_1992 ⋅ 2014/02/28 ⋅ 2

浅谈C/C++中的static和extern关键字

static是C++中常用的修饰符,它被用来控制变量的存贮方式和可见性。extern, "C"是使C++能够调用C写作的库文件的一个手段,如果要对编译器提示使用C的方式来处理函数的话,那么就要使用exter...

dclink ⋅ 2014/03/31 ⋅ 2

const static在c c++中的作用

一.C语言中的const const是C语言中保留的一个关键字,它用来限定一个变量是只读的,即不可变的。程序中使用const可以在一定程度上提高程序的健壮性,但是程序中使用过多的const,可能在对代码...

y_x ⋅ 2011/11/17 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

磁盘管理—逻辑卷lvm

4.10-4.12 lvm 操作流程: 磁盘分区-->创建物理卷-->划分为卷组-->划分成逻辑卷-->格式化、挂载-->扩容。 磁盘分区 注: 创建分区时需要更改其文件类型为lvm(代码8e) 分区 3 已设置为 Linu...

弓正 ⋅ 18分钟前 ⋅ 0

Spring源码解析(六)——实例创建(上)

前言 经过前期所有的准备工作,Spring已经获取到需要创建实例的 beanName 和对应创建所需要信息 BeanDefinition,接下来就是实例创建的过程,由于该过程涉及到大量源码,所以将分为多个章节进...

MarvelCode ⋅ 38分钟前 ⋅ 0

a href="#"

<a href="#">是链接到本页,因为你有的时候需要有个链接的样式,但是又不希望他跳转,这样写,你可以把这个页面去试试

颖伙虫 ⋅ 45分钟前 ⋅ 0

js模拟栈和队列

栈和队列 栈:LIFO(先进后出)一种数据结构 队列:LILO(先进先出)一种数据结构 使用的js方法 1.push();可以接收任意数量的参数,把它们逐个推进队尾(数组末尾),并返回修改后的数组长度。 2....

LIAOJIN1 ⋅ 45分钟前 ⋅ 0

180619-Yaml文件语法及读写小结

Yaml文件小结 Yaml文件有自己独立的语法,常用作配置文件使用,相比较于xml和json而言,减少很多不必要的标签或者括号,阅读也更加清晰简单;本篇主要介绍下YAML文件的基本语法,以及如何在J...

小灰灰Blog ⋅ 54分钟前 ⋅ 0

IEC60870-5-104规约传送原因

1:周期循环2:背景扫描3:自发4:初始化5:请求6:激活7:激活确认8:停止激活9:停止激活确认10:激活结束11:远程命令引起的返送信息12:当地命令引起的返送信息13:文件传送20:响应总召...

始终初心 ⋅ 今天 ⋅ 0

【图文经典版】冒泡排序

1、可视化排序过程 对{ 6, 5, 3, 1, 8, 7, 2, 4 }进行冒泡排序的可视化动态过程如下 2、代码实现    public void contextLoads() {// 冒泡排序int[] a = { 6, 5, 3, 1, 8, 7, 2, ...

pocher ⋅ 今天 ⋅ 0

ORA-12537 TNS-12560 TNS-00530 ora-609解决

oracle 11g不能连接,卡住,ORA-12537 TNS-12560 TNS-00530 TNS-12502 tns-12505 ora-609 Windows Error: 54: Unknown error 解决方案。 今天折腾了一下午,为了查这个问题。。找了N多方案,...

lanybass ⋅ 今天 ⋅ 0

IDEA反向映射Mybatis

1.首先在pom文件的plugins中添加maven对mybatis-generator插件的支持 ` <!-- mybatis逆向工程 --><plugin><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-ma......

lichengyou20 ⋅ 今天 ⋅ 0

4.10/4.11/4.12 lvm讲解 4.13 磁盘故障小案例

准备磁盘分区 fdisk /dev/sdb n 创建三个新分区,分别1G t 改变分区类型为8e 准备物理卷 pvcreate /dev/sdb1 pvcreate /dev/sdb2 pvcreate /dev/sdb3 pvdisplay/pvs 列出当前的物理卷 pvremo...

Linux_老吴 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部