C语言中extern用法详解
来源:互联网 发布:小智淘宝店网址多少 编辑:程序博客网 时间:2024/05/18 21:40
本文基于VC6.0 编译器
首先文档结构如下:
myextern.h和myextern.c中定义extern函数
main.c中定义main方法,调用extern函数
1.第一个尝试:
2.第二个尝试:
3.第三个尝试:
4.第四个尝试:
5.第五个尝试:
6.第六个尝试:
7.第七个尝试:
由上述尝试,可以得出结论:无论你有没有声明extern, 当你没有使用static的时候,编译器默认所有模块声明的函数都是extern的,在整个工程命名空间里面,函数是不能重定义的,但是可以重复声明,即:在同一命名空间里,只能有一个函数的实现,比如:你可以:a.h: extern void f();
另外注意,不要企图用static void f();声明来区分命名空间,static不能分割可见域,static的作用在于它可以分割作用域,即,其他模块不能使用到static void f();但是,其他模块对于static void f()是可见的,在它们内部,可以声明void f(),但是不能重新对f()进行实现。
发现vc的一个bug:
a.c:
void print()
{
}
main.c:
void print()
{
printf("this main's print\n");
}
void main()
{
}
结果是:函数执行的结果很随机:有时候是myextern printf, 有时候是this main's print,
- C语言中extern用法详解
- C语言中extern详解
- C语言中extern的用法
- C语言中extern的用法
- C语言中extern的用法
- C语言中extern的用法
- C语言中extern的用法
- c语言中static用法和extern
- C语言中extern的用法
- C/C++语言中extern的用法
- 【转载】C语言中extern的用法
- C语言中extern的用法
- C语言中extern的用法(转摘)
- C语言中extern的用法--转
- C语言中extern的用法(转摘
- C语言中static 和 extern用法
- C语言中 extern 关键字的用法
- C语言中extern的用法
- could not get batchedbridge, make sure your bundle is packaged correctly
- XML转换成JSON
- typeof的类型
- 【数据结构】二叉树的遍历
- 常用网址
- C语言中extern用法详解
- Linux命令之查询系统运行时间-uptime
- 学习《Python基础教程(第二版)》笔记1
- 观察者模式
- 简单的HTML中TAB分页实现,js控制页面tr行新增、删除、修改
- [RxJava学习]observeOn源码分析
- QT5中 类成员变量的初始化
- Unity3d 线性插值
- GitHub添加项目