ページ 11

volatile修飾子の必要なとき

Posted: 2008年10月24日(金) 11:22
by non
「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修飾子の必要なとき

Posted: 2008年10月24日(金) 14:04
by たかぎ
不要です。

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

Posted: 2008年10月25日(土) 19:26
by non
RESどうも。私の認識どおりで良いということですね。ありがとうございます。

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

Posted: 2008年10月25日(土) 19:27
by non
解決マークをチェックわすれました。