变量、函数声明与定义
来源:互联网 发布:厄舍府的倒塌 知乎 编辑:程序博客网 时间:2024/06/05 06:59
在看了C语言参考手册这本书之后,发现声明和定义是很深奥的。
extern int i ;
extern void write(void)
首先说明下extern的作用:
基本上都是两个作用:
①:放在变量或函数之前,表示在这里只是一个声明,该变量或函数已经在别处定义了;
比如test.h 在该头文件中声明
extern int i;
void write(void);
然后在test.cpp中包含test.h头文件
int i; //声明全局变量
void write(void)
{
...........................................
}
这样任何包含test.h头文件的都可以使用全局变量 i 了,
②:extern "C"
与"C" 一起用,主要在C++代码中调用C编译的动态库,或者再C++代码中要以C风格编译C++方法:
如果C调用C++编译的动态库(没有添加extern "C"),在链接的时候会提示函数找不到,
为什么是这样呢?
原因:C++支持函数重载,在编译的时候会根据函数名和参数生成一个中间名字;但是在C中不会生成中间名字的;
例如C++代码中要调用ffmpeg的代码(ffmpeg是由C实现的),如果在调用时没有添加extern "C",编译的时候是正常的,
但是到链接时就会提示找不到函数名称,这是只要加上extern "C"就解决了该问题。
#ifdef __cplusplus
extern "C"
{
#endif
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
#ifdef __cplusplus
}
#endif
接下来介绍将声明和定义分开有什么好处:在项目中一般都是将声明放在.h文件;定义放在.cpp或.c文件,这样的好处不仅仅逻辑清晰,
同时对用户只暴露接口,实现部分很好的隐藏起来了。
- 变量、函数声明与定义
- 变量与函数的声明与定义
- 注意函数/变量的声明与定义
- 变量 声明与定义
- 变量定义与声明
- 变量声明与定义
- 变量声明与定义
- 定义变量与声明变量
- 声明与定义—变量、函数与类
- 变量/函数的声明/定义
- 函数定义与声明
- C语言中变量和函数的声明与定义
- C语言中变量和函数的声明与定义
- C++中重构函数声明定义与static变量使用方法
- 变量和函数的声明与定义(C/C++)
- 声明定义(变量声明、函数声明、类型声明)
- 变量的定义与声明
- 变量的定义与声明
- 深度探索C++对象模型复习和学习 第二章:构造函数语义学(The Semantics of Constructors)
- keil+stm32+jlink利用swd方式进行printf输出
- bzoj2049 [Sdoi2008]Cave 洞穴勘测 (Link Cut Tree)
- 二叉树的层次遍历
- 去迅雷面试
- 变量、函数声明与定义
- Windows 10/WP10预览 Universal App开发的更新内容
- 关于C语言交换两个int类型变量的讨论
- GPGPU-Sim学习(二)(补充)gpgpu-sim官网所给虚拟机与自己所搭建虚拟机的使用感受
- 面向对象特征
- 每日一佳——Hilbert Space Embeddings of Hidden Markov Models(Le Song,ICML,2010)
- 去腾讯数据中心后台面试
- C++面向对象的三个基本特征
- 好记性不如烂笔头95-spring3学习(16)-spring配置log4j