单片机论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 52|回复: 4
打印 上一主题 下一主题
收起左侧

问一个C语言extern跨文件变量使用的基础问题

[复制链接]
跳转到指定楼层
楼主
nmgbtzyf 发表于 2020-2-15 12:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我知道这样
extern int a;
外部声明,
只是,想想如果利用函数返回 调用其它文件中的变量,也试没问题
就是不明白C的底层知识,
像这样俩种方法,目的是一样的功能都能跨文件变量间的访问,只是如果是外部声明和函数返回调用
哪一个更适合,外部声明,应该算是全局变量吧,这样是对内存的占多,
还是函数返回会让程序多跑路,事得其返,
C的甚而理论学的不扎实所以问问大神们你们一般是如何处理的
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享 分享淘帖 顶 踩
沙发
csmyldl 发表于 2020-2-15 20:00 | 只看该作者
extern int a;是“声明”了变量a,但没分配存储空间,还不能使用。int a;定义了变量a并分配了空间,可以使用。
声明:声明和定义是有区别的。声明不等于定义,声明只是指出了变量的名字,并没有为其分配存储空间;定义指出变量名字同时为变量分配存储空间,定义包含了声明。在程序中一个变量可以声明多次,但只能定义一次。声明时不能赋初值,如果声明时有初始化值,就被当做定义了,例如:
extern  int  a = 5; //定义了变量a=5
后面的程序中若再出现extern  int a = 5;或者int  a;的语句,就会出错,因为变量只能定义一次。
板凳
 楼主| nmgbtzyf 发表于 2020-2-15 22:39 | 只看该作者
谢谢,主要是,我有些习惯,一般尽量的不定义变量,或是常量,当然必要的是不可少,在大型的开发中这是重要的,
我的找一些方法,还是调用函数,主要是为了,好修改管理,全部的数据定义在一个文件内,在其它文件如果想访问这里的数据,调用这文件里的函数就可以,
地板
csmyldl 发表于 2020-2-16 00:05 | 只看该作者
nmgbtzyf 发表于 2020-2-15 22:39
谢谢,主要是,我有些习惯,一般尽量的不定义变量,或是常量,当然必要的是不可少,在大型的开发中这是重要 ...

这是一种很好的结构化程序编写方法,多编写功能子函数,需要时就调用它
5#
hantu 发表于 2020-2-16 15:12 | 只看该作者
extern int a;

这个声明意思是说,我现在要在当前C文件中使用a这个变量,而a是在其它C文件中定义过了,这样而已。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|单片机论坛 |51黑电子论坛技术交流 管理员QQ:125739409;技术交流QQ群636986012

Powered by 单片机教程网

快速回复 返回顶部 返回列表