C语言day10-04static和exetrn对函数-作用
2016-05-08 本文已影响76人
liyuhong165
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");
}