c语言中的extern是啥,有啥作用啊?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言中的extern是啥,有啥作用啊?相关的知识,希望对你有一定的参考价值。

谢谢

extern关键字可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。这里起到的是声明作用范围的用处。

extern的另外用法是当C和C++混合编程时假如c++调用的是c源文档定义的函数或变量,那么要加extern来告诉编译器用c方式命名函数:

文档A.cpp调用a.c里面的变量i和函数callme()

拓展资料

1、可以通过把原函数名与参数信息结合,产生一个独特的内部名字,这种技术叫做名字修饰(Name Mangling)。名字修饰规则没有一个标准,所以不同的编译器的名字修饰规则也不一样。

下面是一组函数,其中f()函数重载了:

f(void)和f(int)是不同的函数,除了函数名相同以外没有任何关系。当生成obj目标文件时,为了区分它们,C++编译器根据参数信息进行了名字修饰:

2、C语言中没有名字修饰(Name Mangling),因为C语言不支持函数重载。但是如果C++中含有C代码,在编译时C++编译器对C代码的函数也会进行名字修饰,函数名变了以后,将导致在C运行库中找不到对应函数,发生链接错误。

为了防止C++编译器对C代码进行名字修饰,我们将C代码用extern “C”进行链接指定,告诉编译器,在生成中间文件时,不要对这部分代码进行名字修饰,而是生成符合C规则的中间符号名。

添加了extern “C”链接指示后,上面的代码就能够正常运行了。

参考技术A extern表示是外部函数或外部变量,比如:
1、extern void add(int x,inty);表示该函数主体不在当前模块中,在另一个模块中(文件)
2、extern int total;表示该变量在另一个模块总定义过。

一般都把一些经常用到的枚举和变量之类的写在.h头文件中。这样要引用时直接include "头文件名"就可以了调用里面所有的枚举和变量了。在大型项目中,引用别的.c文件中的函数则只能用extern,因为.c文件是不能 include的。所以想引用别的.c文件中的函数和全局变量、枚举等等的就只能用extern。
参考技术B extern是全局变量声明
只要声明全局变量就默认 前面加extern(程序员可以不加,但编译器默认加上)

若本文件 引用别的文件中的全局变量 一定要加上extern 声明一下

例如 #include "my_Fun.c"
extern int b;//b是在my_Fun.c中声明了的一个全局变量

这个extern 是个声明他可以在任何地方声明 引用了一个全局变量 (可以试试 在main()函数执行完之后声明 也不会出错)

这样在 工程的总头文件中就不需要考虑 先#include 哪个文件了

参考资料:http://zhidao.baidu.com/question/116706701.html?fr=qrl&cid=866&index=1

参考技术C extern 是变量或函数的申明,告诉编译器在其它文件中找这个变量或函数的定义。本回答被提问者采纳 参考技术D 说明要引用的变量是外部变量,函数是外部函数,就是非本文件中定义的。

HTML中的span标签到底是啥意思,有啥具体的作用

span标签的意思:行内标签。

span标签的作用:组合文档中的行内元素。

<span>标签在行内定义一个区域,也就是一行内可以被<span>划分成好几个区域,从而实现某种特定效果。其实<span>本身没有任何属性,只有当对它应用样式时,它才会产生视觉上的变化。

扩展资料:

<span>所属的HTML标签是HTML语言中最基本的单位,HTML标签是HTML(标准通用标记语言下的一个应用)最重要的组成部分。HTML标签的形式是尖括号包围的关键词,而且通常是成对出现的,比如 <div> 和 </div>。部分HTML标签如下:

1、<s>:定义加删除线的文本。    

2、<samp>:定义计算机代码样本。    

3、<script>:定义客户端脚本。    

4、<section>:定义 section。    

5、<select>:定义选择列表(下拉列表)。    

6、<small>:定义小号文本。    

7、<source>:定义媒介源。    

8、<span>:定义文档中的节。    

9、<strike>:不赞成使用。定义加删除线文本。    

10、<strong>    定义强调文本。    

参考资料来源:百度百科-span标签

参考资料来源:百度百科-HTML标签

参考技术A

span标签是超文本标记语言(HTML)的行内标签,被用来组合文档中的行内元素。

span标签通常使用来将文本的一部分或者文档的一部分独立出来,从而对独立出来的内容设置单独的样式。<span>本身没有任何属性。span没有固定的格式表现。当对它应用样式时,它会产生视觉上的变化。

扩展资料:

span标签语法格式说明:

1、span标签是内联元素,不像块级元素(如:div标签、p标签等)哪样有换行的效果;

2、如果不对span元素应用样式,使用span标签没有任何的显示效果;

3、span标签可以设置id或class属性,这样不仅能增加语义,还能更方便的对span元素应用样式。

<span>在行内定义一个区域,也就是一行内可以被<span>划分成好几个区域,从而实现某种特定效果。

参考资料来源:百度百科-span标签

参考技术B span就是个最简单的容器,是行级元素,有别于DIV,两个div在没有浮动的情况下是上下排放的,而两个span在没有浮动的情况下是同一行显示的,而且,span不可以设置宽高度,设置了也没有效果(很讨厌),基本上用不到span,就因为它不可以设置宽高,大多使用<p>代替使用本回答被提问者采纳 参考技术C 提示:请使用 <span> 来组合行内元素,以便通过样式来格式化它们。
注释:span 没有固定的格式表现。当对它应用样式时,它才会产生视觉上的变化。
以上是w3上的标准解释,另外span是个行级元素,区别于块级,是不能直接定义宽高和margin的上下距离的,如果要定义可以在样式中加入display:block;
参考技术D 怎么说呢,其实html中span也算是一个比较常用的标签了,其实每个标签的出现都有一些特殊的作用,像div,ul,li只是表现形式不一样,而span可以当做一个形式标签,大多网站都用的到,但是主要的作用却只是作为容器设置一些属性。其它没有什么。

以上是关于c语言中的extern是啥,有啥作用啊?的主要内容,如果未能解决你的问题,请参考以下文章

C语言中的temp是啥,有啥作用?

C语言中“SIZEOF(INT)“是啥意思?有啥作用?

C语言中extern的意思是啥?

单片机c语言中常用的头文件有哪些?分别有啥作用啊?

单片机c语言中常用的头文件有哪些?分别有啥作用啊?

C语言中的typedef是啥意思啊