extern与头文件(*.h)的区别和联系
来源:互联网 发布:matlab初始化数组 编辑:程序博客网 时间:2024/05/16 05:34
参考:http://blog.csdn.net/yuyantai1234/article/details/7245412
在这方面extern和static是同级别的修饰符
变量
- extern int a;//声明一个全局变量
- extern int a = 10;//定义一个全局变量
- int a;//定义一个全局变量
- int a = 10;//定义一个全局变量
- ifndef
- 作用:防止头文件重复定义
- 其实,就是防止全局变量的重复定义。
- 如果头文件里的所有全局变量都使用extern 声明,所有的函数都只给出函数原型不定义,那么就可以不用ifndef了
- 函数
- 定义的时候用extern,说明函数可以被外部引用。
- 声明的时候用extern,说明这是一个声明。
- 定义函数要有函数体,声明函数没有函数体,函数定义和声明都可以将extern省略。
- 其他文件也知道这个函数是在其他地方定义的,所以不加extern也行
- 函数
- 方法一:包含头文件
//a.h#ifndef _A_H_#define _A_H_[extern] void fun(void);#endif
//a.c#include "a.h"#include <stdio.h>//不需要声明void fun(void){ printf("fun:shuncom\n");}
#include "a.h"int main(void){ fun(); return 0;}
- 方法二:extern
//a.c#include <stdio.h>void fun(void){ printf("fun:shuncom\n");}
//b.c#include <stdio.h>//需要声明[extern] void fun(void);int main(void){ fun(); return 0;}
- 变量
- 方法一:包含头文件
//a.h#ifndef _xx_h_#define _xx_h_extern int num;//必须的#endif
//a.c#include "xx.h"#include <stdio.h>int num = 10;//不用加extern,加了报warning//但是可以解决//extern "C"//{// extern int num = 10;//}
//b.c#include "xx.h"#include <stdio.h>int main(void){ printf("%d\n",num);}
- 方法二:extern
//a.cint num = 10;
//b.c#include <stdio.h>extern int num;//必须的int main(void){ printf("%d\n",num);}
阅读全文
0 0
- extern与头文件(*.h)的区别和联系
- extern与头文件(*.h)的区别和联系
- extern与头文件(*.h)的区别和联系
- extern与头文件(*.h)的区别和联系
- extern与头文件(*.h)的区别和联系
- extern与头文件(*.h)的区别和联系
- extern与头文件(*.h)的区别和联系
- extern与头文件(*.h)的区别和联系
- extern与头文件(*.h)的区别和联系
- extern与头文件(*.h)的区别和联系
- extern与头文件(*.h)的区别和联系
- extern与头文件(*.h)的区别和联系
- extern与头文件(*.h)的区别和联系
- extern与头文件(*.h)的区别和联系
- extern与头文件(*.h)的区别和联系
- extern与头文件(*.h)的区别和联系
- extern与头文件(*.h)的区别和联系
- extern与头文件(*.h)的区别和联系
- MySQL运算符的优先级
- 跳马
- Hadoop 任务执行方面的优化
- python 列表list初始化
- trainning 2017-11-21
- extern与头文件(*.h)的区别和联系
- IntelliJ IDEA 常用快捷键
- ajax4jsf学习笔记之组件列表
- python libsvm模块在mac上的安装
- 关于某ios app登录关键字加密分析
- mybatis和hibernate的区别的简单的说的一下
- JavaWeb学习篇之----容器Response详解(有关response setCharacterEncoding和setContentType)详细对比说明
- Hello, CSDN!2017/11/21
- mac 不能访问虚拟机下服务器