//
// main.c
// 关键字_static和extern对函数的作用
//
// Created by admin on 15/7/20.
// Copyright (c) 2015年 admin. All rights reserved.
//
#include <stdio.h>
int main(int argc, const char * argv[]) {
/*
0. static 和 extern 是用来修饰内部和外部的关键字,可作用于函数和变量
*/
/*
1. 外部函数
特点: > 外部函数能被本文件和其他文件访问
> 默认情况下定义的函数都是外部函数
> 注意不能有同名的外部函数,尤其文件包含有,两个文件中不能有同名的函数
*/
/*
2. 内部函数
特点:> 只能在本文件中访问使用
> 可以有同名的内部函数
*/
/*
3. extern 对函数的作用
> 完整的声明一个外部函数
> 完整的定义一个外部函数
4. static 对函数的作用
> 完整的声明一个内部函数 // 由于内部函数仅能自己使用所以声明没有意义
> 完整的定义一个内部函数
*/
// 5. 完整的声明一个外部函数
void test2();
extern void test();
static void test3(); //声明一个内部函数,一般不写因为无用
// 6. 完整的定义一个外部函数
extern void test() //可以在文件包含后跨文件引用
{
printf("hello world\n");
}
void test2()
{
// test();
test3();
}
// 7. 完整的定义了一个内部函数
static void test3() // 仅能在本文件引用
{
printf("内部函数\n");
}
return 0;
}
// main.c
// 关键字_static和extern对函数的作用
//
// Created by admin on 15/7/20.
// Copyright (c) 2015年 admin. All rights reserved.
//
#include <stdio.h>
int main(int argc, const char * argv[]) {
/*
0. static 和 extern 是用来修饰内部和外部的关键字,可作用于函数和变量
*/
/*
1. 外部函数
特点: > 外部函数能被本文件和其他文件访问
> 默认情况下定义的函数都是外部函数
> 注意不能有同名的外部函数,尤其文件包含有,两个文件中不能有同名的函数
*/
/*
2. 内部函数
特点:> 只能在本文件中访问使用
> 可以有同名的内部函数
*/
/*
3. extern 对函数的作用
> 完整的声明一个外部函数
> 完整的定义一个外部函数
4. static 对函数的作用
> 完整的声明一个内部函数 // 由于内部函数仅能自己使用所以声明没有意义
> 完整的定义一个内部函数
*/
// 5. 完整的声明一个外部函数
void test2();
extern void test();
static void test3(); //声明一个内部函数,一般不写因为无用
// 6. 完整的定义一个外部函数
extern void test() //可以在文件包含后跨文件引用
{
printf("hello world\n");
}
void test2()
{
// test();
test3();
}
// 7. 完整的定义了一个内部函数
static void test3() // 仅能在本文件引用
{
printf("内部函数\n");
}
return 0;
}