知识大全 C语言之extern声明辨析[2]

Posted 函数

篇首语:成功不是将来才有的,而是从决定去做的那一刻起,持续累积而成。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 C语言之extern声明辨析[2]相关的知识,希望对你有一定的参考价值。

C语言之extern声明辨析[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

   问题 extern 函数   常常见extern放在函数的前面成为函数声明的一部分 那么 C语言的关键字extern在函数的声明中起什么作用?  答案与分析   如果函数的声明中带有关键字extern 仅仅是暗示这个函数可能在别的源文件里定义 没有其它作用 即下述两个函数声明没有明显的区别

extern int f(); 和int f();

  当然 这样的用处还是有的 就是在程序中取代include * h 来声明函数 在一些复杂的项目中 我比较习惯在所有的函数声明前添加extern修饰    问题 extern 函数   当函数提供方单方面修改函数原型时 如果使用方不知情继续沿用原来的extern申明 这样编译时编译器不会报错 但是在运行过程中 因为少了或者多了输入参数 往往会照成系统错误 这种情况应该如何解决?  答案与分析   目前业界针对这种情况的处理没有一个很完美的方案 通常的做法是提供方在自己的xxx_pub h中提供对外部接口的声明 然后调用方include该头文件 从而省去extern这一步 以避免这种错误   宝剑有双锋 对extern的应用 不同的场合应该选择不同的做法    问题 extern C   在C++环境下使用C函数的时候 常常会出现编译器无法找到obj模块中的C函数定义 从而导致链接失败的情况 应该如何解决这种情况呢?  答案与分析   C++语言在编译的时候为了解决函数的多态问题 会将函数名和参数联合起来生成一个中间的函数名称 而C语言则不会 因此会造成链接时找不到对应函数的情况 此时C函数就需要用extern C 进行链接指定 这告诉编译器 请保持我的名称 不要给我生成用于链接的中间函数名   下面是一个标准的写法

//在 h文件的头上#ifdef __cplusplus#if __cplusplusextern C  #endif #endif /* __cplusplus */  … … // h文件结束的地方 #ifdef __cplusplus #if __cplusplus#endif#endif /* __cplusplus */

cha138/Article/program/net/201311/15555

相关参考

阅读下面的公文,辨析其格式和语言表达正误,然后回答61~65题。发文字号的规范写法应为__

阅读下面的公文,辨析其格式和语言表达正误,然后回答61~65题。发文字号的规范写法应为_____。A、江教字〔2010〕03号B、江教字〔2010〕3号C、江教字〔2010〕第3号D、江教字〔2010

知识大全 我是谁

我是谁?这句话都代表什么含义。谢谢太多的困惑而无法认识自己c语言这句话代表的含义c语言这种复杂声明的解释有固定的规律楼主可以搜搜相关的文章对于这个具体的例子的意思是:声明function为一个函数指针

知识大全 WPF数据绑定之绑定声明

WPF数据绑定之绑定声明  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  本主题讨论声明绑定的不同

知识大全 PHP新手之学习数组声明

PHP新手之学习数组声明  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!数组是在程序设计中为了处理方

知识大全 Spring声明式事务管理源码解读之事务提交

Spring声明式事务管理源码解读之事务提交  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  其实

知识大全 Spring声明式事务管理源码解读之事务开始

Spring声明式事务管理源码解读之事务开始  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在s

六味地黄丸加减方辨析

六味地黄丸含有熟地黄、山萸肉、山药、丹皮、茯苓、泽泻六味药,滋阴补肾,治疗腰膝酸软,头晕目眩,耳鸣耳聋,盗汗遗精,以及小儿囱门不合之症,也可治疗虚火上炎而致的胃蒸潮热,或消渴,虚火牙痛等症。以六味地黄

知识大全 Oraclei外部表(External Table)的使用

Oraclei外部表(ExternalTable)的使用  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下

知识大全 C# 语言规范--1.11 枚举

C#语言规范--1.11枚举  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  枚举类型声明为一组相

知识大全 我是一名C语言初学者,请各位大虾帮帮忙,用C语言编写一个程序,求1+2+3+4+5+6·····+100

我是一名C语言初学者,请各位大虾帮帮忙,用C语言编写一个程序,求1+2+3+4+5+6·····+100  以下文字资料是由(本站网www.cha138.com)小编为大