OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4336|回复: 4

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

[复制链接]

13

主题

45

帖子

0

精华

初级会员

Rank: 2

积分
113
金钱
113
注册时间
2019-8-9
在线时间
48 小时
发表于 2020-2-15 12:54:52 | 显示全部楼层 |阅读模式
1金钱
我知道这样
extern int a;
外部声明,
只是,想想如果利用函数返回 调用其它文件中的变量,也试没问题
就是不明白C的底层知识,
像这样俩种方法,目的是一样的功能都能跨文件变量间的访问,只是如果是外部声明和函数返回调用
哪一个更适合,外部声明,应该算是全局变量吧,这样是对内存的占多,
还是函数返回会让程序多跑路,事得其返,
C的甚而理论学的不扎实所以问问大神们你们一般是如何处理的

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

15

主题

1061

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
3583
金钱
3583
注册时间
2019-8-14
在线时间
1052 小时
发表于 2020-2-15 15:45:46 | 显示全部楼层
如果是extern声明函数的话,会加速程序的编译(确切地说是预处理)的过程,节省时间。在大型C程序编译过程中,这种差异是非常明显的。

回复

使用道具 举报

10

主题

778

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6681
金钱
6681
注册时间
2017-4-12
在线时间
1254 小时
发表于 2020-2-15 18:24:06 | 显示全部楼层
全局变量注意点用
回复

使用道具 举报

13

主题

45

帖子

0

精华

初级会员

Rank: 2

积分
113
金钱
113
注册时间
2019-8-9
在线时间
48 小时
 楼主| 发表于 2020-2-15 22:32:10 | 显示全部楼层
谢谢,花了些时间,找到方法了,我知道全局,慎用的道理。
所以问问有什么方法
我自己找了一些,一般我都函数间的参数传递,但是像标志位,这样的就不行了,
作一具,外中断改参数,内部程序 像PWM,显示,定时中断。这些要外部中断来参数控制的,只能修改数据,所以数据的定义就是麻烦一些
我想一些方法,主要是,在一个文件内定义全部的参数,所有的中断要修改的数据,调用这个文件的定义的函数这样就不用在外部声明了,
回复

使用道具 举报

13

主题

45

帖子

0

精华

初级会员

Rank: 2

积分
113
金钱
113
注册时间
2019-8-9
在线时间
48 小时
 楼主| 发表于 2020-2-16 10:06:47 | 显示全部楼层
我知道,所以我尽量不想用全局。   想到了一些方法。
统一一个文件定义数据。   本文件内加可访问函数。或者是加入可以调用其他功能的函数。我就是不知道做这样有什么弊端。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-25 11:52

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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