volatile修飾子の必要なとき

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
non

volatile修飾子の必要なとき

#1

投稿記事 by non » 17年前

「ITRONプログラミング入門」の74ページに
void MonitorTask(VP_INT exinf)
{
	volatile unsigned char old=PADR & 0x0f;
	volatile unsigned char new;
	while(1)
	{
		new=PADR & 0x0f;
		if(old & (~new))
			wup_tsk(TSKID_ALERT);
		old=new;
		dly_tsk(100);
	}
}
というサンプルがあります。この場合volatileは必要なのでしょうか?
私の認識では、whileの中で、oldやnewは常に代入されているので最適化されず、(PADRはヘッダファイルでvolatileがついているので)必要ないと思いますが、最適化されて、volatileをつけないとまずいコンパイラはあるのでしょうか?
ご教授をよろしく。

たかぎ

Re:volatile修飾子の必要なとき

#2

投稿記事 by たかぎ » 17年前

不要です。

non

Re:volatile修飾子の必要なとき

#3

投稿記事 by non » 17年前

RESどうも。私の認識どおりで良いということですね。ありがとうございます。

non

Re:volatile修飾子の必要なとき

#4

投稿記事 by non » 17年前

解決マークをチェックわすれました。

閉鎖

“C言語何でも質問掲示板” へ戻る