c语言extern,c语言extern的用法
dfnjsfkhak
2024-01-09
53
大家 好,今天小编关注到一个 比较 有意思 的话题,就是 关于c语言 extern 的问题 ,于是小编就整理了2个相关 介绍 c语言extern的解答,让我们 一起看看吧。
c语言中的extern怎么用? include和extern有什么区别? c语言中 的extern怎么 用? extern在c中就是个外部申明,因为C是先申明再使用 ,当你想调用 的变量 或者函数 不在你的当中,你可以 使用外部申明。在使用外部申明的时候要特别注意,因为这只是个申明,并不是实体,当出现声明 和实体不符的时候,编译器 是不会管的,链接后就可能 出现。比如你的实体是 int sample( int x ) ;而你在申明的时候是extern int sample( void ) ; 所以我不喜欢 这种方式去声明。特别是多个人合作项目 的时候,这种方法 往往导致的结果 很难去debug。即使是别人写好提供 给你的,那他在修改 了函数或者变量的类型 ,参数 ,往往会忘记修改给你的申明。
extern 还有个作用就是当你C和C++ 混用的时候,比如在C++中要使用C, 那么就要告诉编译 器,你这段代码 使用的是C,需要 用C的编译器去编译,那可以使用extern "C" { .........} 否则编译会有问题
include和extern有什么 区别? `include` 和 `extern` 是C / C++编程 中使用的关键字 ,它们有不同 的作用和用法 。
1. `include`:是一个预处理 器指令 ,用于 在程序 中包含其他文件 的内容 。使用`#include`,可以将另一个文件的内容复制 到当前文件中。被包含的文件通常包含函数声明、宏定义 、结构 定义等。
  ; 例如:
```c
#include <stdio.h>
```
(图片来源网络,侵删)
上述语句 将在程序中包含了标准 输入 输出 头文件`stdio.h`的内容,这样就可以使用`printf `和`scanf`等函数。
#include和extern在本质上是不同的,但在实际应用 中有一些 相似之处。以下是两者的主要 区别: 定义: #include是一个预处理 器指令,它告诉编译器在编译前将指定的文件内容包含在当前位置 。通常用于包含头文件,但也可以包含其他类型的文件。 extern是一个关键字,用于声明一个变量或函数是在其他地方定义的,而不是在当前文件中定义的。它告诉编译器这个 变量或函数在链接时会被解析。 作用: #include的主要作用是包含一个文件的内容,以便在当前位置使用。这可以用于头文件、源文件或其他类型的文件。 extern的主要作用是声明一个变量或函数,以便在当前文件中使用。它告诉编译器这个变量或函数在其他地方定义,因此不需要在当前文件中提供完整的定义。语法 : #include的语法是#include 或#include "filename"。其中,尖括号 表示 编译器在标准库目录 中查找 文件,双引号 表示编译器在当前目录或指定的其他目录中查找文件。 extern的语法是extern datatype variable_name或extern function_name(parameters); 适用场景: #include通常用于包含头文件,以便在多个源文件***享相同的代码。例如,如果 你有一个头文件包含了函数的声明和类型定义,你可以在多个源文件中包含这个头文件,以便它们都可以使用这些函数和类型。 extern通常用于声明在多个源文件中定义的变量或函数。例如,如果你有一个函数在一个源文件中定义,并在另一个源文件中声明为extern,那么在链接时,链接器将找到这个函数的定义并正确地链接它。 编译和链接过程 : 当编译器遇到#include指令时,它会将指定的文件内容插入 到当前位置。然后 ,编译器会编译整个文件并生成 目标 文件。在链接阶段 ,链接器会将所有的目标文件和库文件连接 起来生成最终的可执行 文件。 当编译器遇到extern声明时,它会知道这个变量或函数是在其他地方定义的。在链接阶段,链接器会找到这个变量或函数的定义并正确地链接它。如果找不到定义,链接器会报错。 总之,#include和extern在本质上是不同的,但在实际应用中有一些相似之处。#include用于包含文件内容,而extern用于声明在其他地方定义的变量或函数。
到此,以上就是小编对于c语言extern的问题就介绍到这了,希望介绍关于c语言extern的2点解答对大家有用 。
标签: 文件
extern
函数
版权声明: 本文来源于网络,不代表本站立场,如转载内容涉及版权等问题,请联系邮箱:83115484@qq.com,我们会予以删除相关文章,保证您的权利。