こんにちは。SUZUKIです。
RL78/G14用のプログラムをCS+で開発中に良く分からない現象に遭遇しました。
プログラムは
void test(char a){
char b = 0;
b = a+10;
}
という簡単なものです。
この時に変数a,bをウォッチするとアドレスがそれぞれ[L:REG][H:REG]となっており、変数bの値は0のままでした。
動作する条件としては下記3つありました。
1.変数bの宣言をグローバルで行った場合
2.別の変数(使用しない)を関数内で宣言した場合
3.変数bの型をint型にした場合
これらの時は変数a,b共にアドレスが割り当てられ正常に動作しました。
これはどのような事が起きているのでしょうか。
宜しくお願い致します。
わわいさん、こんにちは。NoMaYです。横から失礼します。SUZUKIさんが質問用にコードを簡略化する前の実際のコードで、こう何というか、ひょっとしてコンパイラのバグ?とも思われるような話になって来たような気がしたのですが、こういう話になって来たら、これは正確な状況を聞いてみた方が良くないでしょうか?