国学芯用 发表于 2023-5-8 08:50:25

Keil小技巧-在多文件项目的源文件中声明并使用外部变

在多文件项目的源文件中声明并使用外部变量和外部函数-Keil小技巧
https://www.stcaimcu.com/forum.php?mod=viewthread&tid=1942

在Keil环境下开发比较大的项目时,往往需要在项目中加入多个源文件
而不同源文件内,可能会有一些变量和函数是开放为其它源文件使用的
但默认情况下,在源文件内部定义的变量和函数只在本源文件可见(可使用)
如果需要跨源文件使用则需要遵循一定的规则进行定义和声明

对于需要跨源文件访问变量:
1、变量必须定义为全局变量
   所谓全局变量就是在函数外部定义,在函数内部定义的变量为局部变量
   由于局部变量的作用域仅在定义的函数内部,且生命周期在函数返回时就结束了
   所以要使变量能跨源文件访问,变量必须定义为全局变量
2、变量必须定义为非静态变量
   使用static关键字定义的变量为静态变量,静态变量作用域仅为本源文件,外部源文件不可访问。
   所以要使变量能跨源文件访问,变量必须定义为非静态变量,即定义时不要使用static关键字
链接:https://www.stcaimcu.com/forum.php?mod=viewthread&tid=1942

lyl1070 发表于 2023-5-8 11:02:21

.H
#ifndef         _CONTROL_H_
#define         _CONTROL_H_
#ifdef        _CONTROL_C_
#define ex
#define EX
#else
#define ex extern
#define EX extern
#endif

.C
#define                _CONTROL_C_

可以结贴了。

D.lovers 发表于 2023-5-8 13:05:22

我一般用相关标识+global,ext
页: [1]
查看完整版本: Keil小技巧-在多文件项目的源文件中声明并使用外部变