グローバルな一時変数

変数の使い方の問題には、例えば「XXXtemp」のような名前の一時変数がグローバル領域におかれていることが挙げられる。こういったグローバル変数の何が一時的かと言うと、関数の間で値を受け渡すのに「一時的に」使用されている。たとえばこんな感じに使われている。

uint32 XXXtermp;     //func1 と func2 以外では使用されない 

void func1(uint8 a)
{
    XXXtemp = a;
    func2();
}

void func2(void)
{
    if (XXXtemp > 0) {
        ...
    }
}

こういった変数は、実際の使われ方によって次の2つのいずれかの方法で修正するべきだろう。

  • 変数が関数間で値を渡しているだけなら、関数の引数にする。
  • 変数の値を長期間保持する必要があるなら、適切な名前に変更する。

細かいことかも知れないけど、いわゆる「名前重要」ってことで。