C语言之extern外部函数.docx

C语言之extern外部函数.docx

ID:51687028

大小:42.93 KB

页数:2页

时间:2020-03-15

C语言之extern外部函数.docx_第1页
C语言之extern外部函数.docx_第2页
资源描述:

《C语言之extern外部函数.docx》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、对外部函数的引用性声明一定要遵从原函数定义,尽管可能会通过编译,但实际使用并未遵从函数的本来意图,可能会导致意想不到的bug函数调用的处理是在连接阶段进行的实例分析:外部函数声明于外部文件-----projectfolder-----main.c-----extern_funtion.cmain.c1./***********************************************  2. * test.c  3. ***********************************************/  4.int fun (void)

2、; //引用性声明,同:externintfun(void); 5.  6.int main ()  7.{  8.    int t ;  9.  10.    t = fun();  11.    printf("%d",t);  12.    system("pause");  13.    return t;  14.}  extern_function.c1./***********************************************  2. * fun.c  3. *******************************

3、****************/  4.  5.#include   6.  7.void fun (int n,int b)  8.{  9.    printf("%d %d",5,b);  10.}  这样的引用性声明形式能顺利通过编译吗?回答是肯定的,编译丝毫没有问题,运行结果如下:1)调用的时候并没有向被调用的函数传递参数,实际却有参数传入?2)被调用的函数在定义中并没有返回值,实际却有返回值?为什么呢,这就要知道c函数的参数传递机制了1)调用函数时将进程栈中原本其他含义的变量当做参数传入了,2)返回的时候将栈中或寄存器中原本其

4、他含义的变量当做返回值返回了若这些参数是指针,那,太可怕了!!!!!习惯性的做法是在定义这些外部函数的同时将这些函数的引用性声明置于对应的头文件中(定义的同时并在头文件中声明,出错概率小),当外部文件需要调用该函数时,在调用文件中包含该文件就行了

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。