static和extern的用法总结
来源:互联网 发布:各个朝代的疆域数据 编辑:程序博客网 时间:2024/04/29 06:24
static用法见:
int i; for (i = 1; i <= 3;i++) count(); return 0; static num= 0; num++; printf(" Ihave been called %d",num,"timesn");
1、http://www.cnblogs.com/yezhenhan/archive/2011/10/31/2229724.html
2、http://www.52rd.com/Blog/Detail_RD.Blog_imjacob_5297.html
extern用法:
1、http://blog.csdn.net/cameracanon/article/details/4061419
2、http://blog.csdn.net/liu1028701143/article/details/7359381
简单地理解static:
(1)如果static放在头文件中的话,被2个不同的cpp文件分别引入时,那么这两个cpp都有一个自己的这个static变量,并且相互不受影响。
(2)static用来修饰全局变量时,只能被本文件引用,不会被其他文件访问和修改,其他文件可以定义相同名字的变量;
(3)static用来修饰函数时,只能被本文件引用,不会被其他文件访问和修改,其他文件可以定义相同名字的函数;
(4)static用来修饰局部变量(即某个函数内部的变量)时,退出函数时,该变量仍保留着相应的值;
例如:
void count();
int main()
{
}
void count()
{
}
输出结果为:
I have been called 1 times.
I have been called 2 times.
I have been called 3 times.
简单地理解extern:
(1)extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。
(2)extern用在变量声明中常常有这样一个作用,你在*.c文件中定义声明了一个全局的变量,这个全局的变量如果要被其他x.c文件引用,就放在*.h中并用extern来引用声明,然后再x.c中包含该*.h头文件。
(3)(个人规则)函数的定义声明带不带extern其实都表示同一个意思,即不带时默认是extern的,所以一般定义声明时不带extern。
(4)(个人规则)函数的引用声明必须带关键字extern,暗示这个函数可能在别的源文件里定义,没有其它作用。
(5)如果定义函数(函数的具体实现)的c/cpp文件在对应的头文件中声明了所定义的函数(头文件中该函数前可带可不带extern),那么在其他c/cpp文件中要使用这些函数,只需要包含这个头文件即可。如果你不想包含头文件,那么你要在其他c/cpp中使用extern声明该函数(仅仅表明这个函数可能在别的源文件里定义,没有其它作用)。如下所述:
first.h头文件内部:
#ifndef Function
#define Function
void count();
……
#endif
first.c文件内部:
#include "first.h"//count()函数的声明
……
void count()
{
……
}
//如果不想包括头文件,second.c文件内部:
extern void count();//表明是其他文件里面的函数
//包含头文件,second.c文件内部
#include "fisrt.h"//这个就包含了 void count()函数的声明
0 0
- static和extern的用法总结
- extern和static 的用法
- static和extern的用法
- static和extern的总结
- const 、static、extern的用法总结
- const 、static、extern的用法总结
- const 、static、extern的用法总结
- 【转载】关于static和extern的用法
- 【转】关于static和extern的用法
- 关于static和extern的用法
- 【转载】关于static和extern的用法
- static和extern的混合用法测试
- const、static、extern的解释和用法
- CONST,STATIC,EXTERN用法总结!
- CONST,STATIC,EXTERN用法总结!
- extern 与 static 用法总结
- CONST,STATIC,EXTERN用法总结!
- const,static,extern用法总结
- 树——堆的运用
- 关于链表的学习心得
- bitmap算法
- Laravel5.1之文件上传并展示
- 自定义view圆
- static和extern的用法总结
- C语言srand((unsigned)time(NULL))…
- 文件操作
- 位操作
- 使用VS2015编写C/C++开始步骤
- C中输入输出函数
- main函数的参数
- HDU 3008 Warcraft(dp)
- 字符串处理问题[2]:将一个数字型…