关于C语言中的extern问题

文章介绍了在C语言中,extern关键字用于声明全局变量并在不同源文件间共享。extern可以放在变量声明前,表示该变量是在其他地方定义的。在addtwonum.c和test.c两个文件的例子中,extern用于链接阶段确保函数和变量的正确调用和访问。
摘要由CSDN通过智能技术生成
extern int a;   //声明了一个变量 a
int a;          //定义了一个变量a
extern int a=0; //定义并赋值了一个变量a 
int a=0;        //定义并赋值了一个变量a

第三行和第四行意思相同,但是第三行可以出现在多个文件的多处,而第四行只可以出现在一处,当你要引用一个全部变量的时候,就要使用 extern int a,其中的extern不可以省略。如果省略就是定义一个变量。

addtwonum.c 文件代码:
#include <stdio.h>
/*外部变量声明*/
extern int x ;
extern int y ;
int addtwonum()
{
    return x+y;
}

test.c 文件代码:
#include <stdio.h>
  
/*定义两个全局变量*/
int x=1;
int y=2;
int addtwonum();
int main(void)
{
    int result;
    result = addtwonum();
    printf("result 为: %d\n",result);
    return 0;
}

此处的text.c文件中并没有对addtwonum()函数作出声明,是因为编译器会在链接阶段将addtwonum.c的文件的代码与text.c文件的代码进行链接,从而确保调用addtwonum()函数时能够正确执行。

当然了,也可以声明此函数方法。如下:

addtwonum.c文件代码如下:

#include <stdio.h>
/*外部变量声明*/
extern int x ;
extern int y ;

extern int addtwonum();   // 添加extern声明

int addtwonum()
{
    return x + y;
}

test.c文件代码如下:

#include <stdio.h>
  
/*定义两个全局变量*/
int x = 1;
int y = 2;
extern int addtwonum();   // 添加extern声明

int main(void)
{
    int result;
    result = addtwonum();
    printf("result 为: %d\n", result);
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值