松林です。こんにちは。
厳密には,H8の質問にならないかもしれませんが,
失礼ついでに,お願いいたします。
下のプログラムを秋月のCコンパイラ/H8マザーキットで,
実行するとyが正の数になってしまい,一晩悩みました。
(もちろん,printf関数は,液晶表示関数に変えています。)
windows上のターボcも同様でした。
これは,ANCIの仕様でしょうか。
y=-1.0*x;
とすれば,yも負になってくれるんですが・・・。
#include <stdio.h>
main()
{
unsigned x=10;
double y;
int z;
y=-x;
z=-x;
printf("%lf\n",y);
printf("%d",z);
}
/*実行結果
4294967286.000000
-10
*/
// Katsushi MATSUBAYASHI matsu@xxxxxxxxxxxxxx
// Associate Professor, Tokyo National College of Technology