我对C编程有点新意,我想问一个问题。 我正在使用MPLAB c18编译器。
首先,当我开始编码并最终得到很多变量时,有些是全局性的,有些是外部的。
我在一篇关于变量封装的文章中找到了一个声明。
Replacing
float x;
float y;
float z;
with these
float X();
float Y();
float Z();
是否打算用
各个函数内的局部变量并分配
local float x = float x(); local float y = float y();
我很感激你在这种情况下的意见和澄清。我对这个解释错了。 所以我的问题是,封装是否用于减少全局并在函数中使用更多局部变量?
此致
答案 0 :(得分:1)
替换“float x”(可能是某些标题中的extern float x)有效地封装了变量
你可能需要这样的东西:
float x(); /* get x */
void setX(float newVal); /* set x here */
但这相当普遍,真正的实施需要根据您的需求量身定制(你需要一个安装者吗?你需要一个吸气剂吗?你需要优化吗?)。
一般来说,特别是如果你是C的新手,封装有助于更清洁的设计并防止出现简单的错误
例如,假设更改值X涉及执行其他任务(例如,X是核导弹发射序列的倒计时)。
封装时,您的代码看起来像:
void setX(float newVal){
x = newVal;
startNuclearLaunchSequence();
}
如果你没有这个制定者,你需要找到你设置X的所有地方(也许是你的同事)并手动发射你的火箭,否则你会失败然后再见 - 再见。
我们不希望这样,是吗?