C/C++ extern关键字用法示例全面解析

当在 C/C++ 中需要引用其他源文件中定义的变量或函数时,可以使用 extern 关键字。extern 关键字用于将某个全局变量或函数声明为外部定义,以便在该程序中的其他文件中使用。

下面通过几个示例来详细介绍 extern 关键字的用法。

示例一:在不同文件中使用全局变量

假设我们有以下两个 C 文件:

source1.c

#include <stdio.h>

int count = 0;
void foo();

int main()
{
    count = 5;
    foo();
    printf("count = %d\n", count);
    return 0;
}

source2.c

#include <stdio.h>

extern int count;

void foo()
{
    count++;
    printf("count in foo = %d\n", count);
}

在 source1.c 中定义了一个全局变量 count 并将其值设为 5,在 foo 函数中通过 extern 关键字引用该变量并将其加 1。最终输出结果为:

count in foo = 6
count = 6

可以看到,通过 extern 关键字可以在不同文件中实现对全局变量的引用和修改。

示例二:在不同文件中使用函数

我们再来看一个使用 extern 关键字的函数示例。

source3.c

#include <stdio.h>

void hello();

int main()
{
    hello();
    return 0;
}

source4.c

#include <stdio.h>

extern void hello();

void world()
{
    printf("world\n");
}

void hello()
{
    printf("hello ");
    world();
}

在 source4.c 中定义了两个函数 world 和 hello。在 hello 函数中通过 extern 关键字引用了另一个文件中定义的函数,最终输出结果为:

hello world

可以看到,使用 extern 关键字不仅可以在不同文件中使用全局变量,还可以在不同文件中使用函数。在多文件编程中,使用 extern 关键字可以让不同文件中的代码能够互相交互,实现更加有组织的程序设计。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C/C++ extern关键字用法示例全面解析 - Python技术站

(0)
上一篇 2023年5月23日
下一篇 2023年5月23日

相关文章

  • c语言实现的带通配符匹配算法

    带通配符匹配算法 带通配符匹配算法是一种字符串匹配算法,可以匹配包含通配符的字符串。通配符可以代表任何字符或者一组字符。例如,字符串“a*b”可以匹配“ab”、“acb”、“adfb”等字符串。本文将详细介绍如何使用C语言实现带通配符匹配算法。 实现步骤 我们首先需要确定通配符的类型。一般情况下,通配符分为两种类型:“” 和 “?” 。其中,“” 可以匹配任…

    C 2023年5月22日
    00
  • 电脑打开网页失败 并弹出应用程序发生异常(0xc06d007e)的解决办法

    这个问题可能是由于计算机上某些文件的损坏或遗失等原因造成的。为了解决这个问题,可以考虑以下几个步骤: 1. 停止并重启相关应用程序 有时候,应用程序发生异常错误是由计算机内存或其他应用程序泄露等原因引起的。因此,停止并重新启动相关应用程序可能会有所帮助。具体步骤如下: 打开任务管理器(可通过键盘快捷键 Ctrl + Shift + Esc 或 Ctrl + …

    C 2023年5月23日
    00
  • java中的空指针异常情况以及解决方案

    首先我们先来了解一下Java中的空指针异常。 什么是空指针异常 空指针异常,顾名思义,就是在程序中使用了一个值为null的对象引用,而没有进行判空处理,从而导致程序抛出异常。 在Java中,当我们尝试调用一个null对象的方法时,就会抛出空指针异常。 例如,以下代码中就存在空指针异常的情况: String str = null; int len = str.…

    C 2023年5月22日
    00
  • C语言实现简单的学生学籍管理系统

    C语言实现简单的学生学籍管理系统攻略 本系统主要实现以下功能: 添加学生信息; 修改学生信息; 删除学生信息; 查询学生信息; 展示所有学生信息。 1. 添加学生信息 实现思路 添加学生信息需要以下步骤: 获取学生信息,包括姓名、性别、年龄等; 根据学生信息创建一个学生对象; 将学生对象添加到学生列表中。 示例代码 #include <stdio.h&…

    C 2023年5月23日
    00
  • 一文详解Qt中线程的实际应用

    一、什么是Qt中的线程? Qt中的线程是指在Qt框架下使用的线程,它是建立在操作系统线程之上的一个高层抽象。Qt中的线程分为QThread线程和QtConcurrent线程两种。其中,QThread线程是比较传统的线程实现方式,而QtConcurrent则是在Qt4中新增的一种线程实现方式,相对而言更加简单。 二、为什么要使用Qt中的线程? 在许多程序中,为…

    C 2023年5月22日
    00
  • 抖音号认证蓝v有啥用?抖音蓝v认证优劣势分析

    抖音号认证蓝v有啥用? 抖音号认证蓝v可获得相应的认证标识,标识用户身份的真实性和权威性,提高用户公信力,也方便用户在大众中脱颖而出。那么抖音蓝v认证具体有哪些优劣势呢?接下来从以下几个方面进行分析。 优势 增强公信力 获得抖音蓝v认证的用户可以通过认证标识证明用户身份的真实性和权威性,这有助于提高用户公信力。 提高曝光率 相对于非认证用户,抖音认证用户具有…

    C 2023年5月22日
    00
  • 解决JSON.parse转化不规范json字符串的问题

    当JSON.parse遇到不规范的JSON字符串时,它将会抛出JSON.parse错误,导致代码无法继续执行。这时可以采用一些技巧和工具来解决这个问题。 1.使用try-catch语句 在JSON.parse方法周围包裹try-catch语句是解决这个问题的一种常见方式。这样如果JSON.parse方法抛出异常,我们就可以在catch语句中捕获这个异常,然后…

    C 2023年5月23日
    00
  • 电视盒子排行榜 剁手都要买的五大直播神器

    电视盒子排行榜 剁手都要买的五大直播神器 如果您想要追剧、看球赛、听音乐等,电视盒子是一个非常不错的选择。那么,如何选购一款好的电视盒子呢?以下是电视盒子排行榜上的五款直播神器,它们不仅拥有强大的性能,而且价格也非常实惠。 一、小米电视盒子3 增强版 小米电视盒子3 增强版是一款非常不错的电视盒子。它支持高清视频播放和在线直播,还有精选优秀应用,如爱奇艺、腾…

    C 2023年5月22日
    00
合作推广
合作推广
分享本页
返回顶部