文档章节

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

lyh2017iOS
 lyh2017iOS
发布于 2017/07/07 09:59
字数 420
阅读 2
收藏 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
博文 357
码字总数 137380
作品 0
朝阳
二十、static和extern关键字2-对变量的作用

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

长平狐
2013/03/28
709
0
C语言关键---static

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

jackxu2015
2015/08/14
0
0
十九、static和extern关键字1-对函数的作用

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

长平狐
2013/03/28
1K
0
C语言基础-11-static和extern关键字1-对函数的作用

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

Corwien
2016/03/16
24
0
C语言基础-12-static和extern关键字2-对变量的作用

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

Corwien
2016/03/16
26
0

没有更多内容

加载失败,请刷新页面

加载更多

ajax 提交返回map集合 获取不到值

后台java代码 @RequestMapping("/cameraList") @ResponseBody public Map<String, Object> cameraListForPage(@RequestParam(defaultValue = "1", value = "page") Integer page......

S三少S
6分钟前
0
0
TypeScrip最污的技术课-技术胖TypeScript图文视频教程

近日Node.js之父瑞安达尔(Ryan Dahl)发布新的开源项目 deno,从官方介绍来看,可以认为它是下一代 Node,使用 rust 语言代替 C++ 重新编写跨平台底层内核驱动,上层仍然使用 V8 引擎,最终...

JamesView
8分钟前
5
0
Es学习笔记

1.过滤排重聚合查询 筛选出某一个聚合值的个数统计。相当于mysql的distinct. 关键字:cardinality "aggs": { "2":{ "cardinality": { "field": "field" } ...

Gmupload
11分钟前
0
0
h5语义化标签

语义化HTML:用最恰当的HTML元素标签做恰当的事情。 优点: 提升可访问性; SEO; 结构清晰,利于维护; 通用容器:div——块级通用容器;span——短语内容无语义容器。 <title></title>:简...

莫西摩西
17分钟前
0
0
修改11g rac中 asm diskstring的发现路径

问题 : 如果我 们asm_disking以前是/dev/oracleasm/disks/* ,并且现在已经有磁盘组再用这个磁盘串了,那么,我们无法直接修改这个发现串为 ORCL:*,修改会报错,提示存在的磁盘无法使用新的...

tututu_jiang
20分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部