extern的使用和危害
来源:互联网 发布:squid和nginx 编辑:程序博客网 时间:2024/04/30 15:09
extern 的用途:
extern 在很多时候被我们大量的使用,一般用于引用不在本文件定义或声明的函数还有变量。
对于变量往往更多的是全局变量。
比如在我们在a.c文件定义了一个函数原型,并实现了其功能。当我们再次要使用一个相似功能的函数接口
的时候,我们没必要自己再去实现一遍这样的函数,这样既浪费我们现在宝贵的时间,而且也没有充分利用
我们或者其他人之前所做的努力。
如下所示:a1.c UINT funca(UINT uiValue) { ... }b2.c UINT g_uiXxxFlagB2 = 0;/*...*/现在我们要在c3.c文件中使用funca和全局变量g_uiXxxFlagB2,比较简洁的方式就是在c3.c文件中使用extern 声明引用该函数和变量c3.c extern UINT funca(UINT uiValue); extern UINT g_uiXxxFlagB2; UINT funcC3() { ... (VOID)funca(g_uiXxxFlagB2); ... } 这样的方式给我们带来了一些很大的便利,从而节省了我们很多的时间和精力; 但是这样做也会存在一些危险,比如我们在c3.c文件引用的在a1.c文件的funca函数原型 由UINT funca(UINT uiValue)变为UINT funca(UINT uiValue1, UINT uiValue2) 我们在编译的时候不会报错,但是在我们执行程序的时候会在使用该函数的时候存在危险, 尤其是该函数若有一个参数为指针,极有可能会存在对指针的误操作,而引起异常;那我们该如何做呢,比较好的方式就是将这些函数和变量放置在一个公共的大家都可以访问到的d4.h文件中,在使用这些函数或者变量的时候,生命一下引用d4.h头文件即可。比如:d4.h UINT funca(UINT uiValue); UINT g_uiXxxFlagB2;c3.c #include "d4.h" ... UINT funcC3() { ... (VOID)funca(g_uiXxxFlagB2); ... }
1 0
- extern的使用和危害
- 使用enCode和deCode来解决xss的危害
- static和extern的使用
- 使用授权引擎的危害
- 使用授权引擎的危害 .
- system使用、危害和解决办法总结
- 交叉引用和extern的使用
- 使用MyEclipse盗版的若干危害
- 网站盗链的危害和防范
- 整数溢出的危害和预防
- 废代码的危害和解决之道
- eval函数的危害和禁用方法
- static和extern static和const extern和const的联合使用
- “extern c”的使用
- extern “C”的使用
- extern "C"的使用
- extern "C"的使用
- extern的使用
- Mybatis 中用# 和 $ 的区别
- android 如何解析XML
- MD5加密 C#窗体应用程序
- Java HMACShA256
- poj 2584 T-Shirt Gumbo
- extern的使用和危害
- java Windows平台 调用c++
- HDU 2795 Billboard 线段树单点更新
- 第32讲 实践项目——输出小星星5
- 使用AIDL实现进程间的通信
- 用户友好输入界面
- 下拉框选中 默认选中(从数据库比较,用户本身的值
- Unity3D内置运行函数
- 文章标题