- 7 名前:デフォルトの名無しさん mailto:sage [2012/08/07(火) 03:16:05.01 ]
- かなり古い文献のプログラムなのですが、
@ funcA(data) short *data; { char max; max = *data; A funcB(number) char *number; { short no; *number = no; B short data; unsigned short cnt; cnt = (long)data; sprintf(data, "%5ld",(long)cnt); このような表現がありました。 @Aはchar型にshort型を代入(?)してるみたいだし、Bはわざわざlong型にキャストしてshort型に代入してる? 試しにVisual C++6でビルドしてみたところ、エラーにはならないが、ワーニング(データが失われる・・・)となりました。これは、 1.この文献の記述がそもそも間違っている 2.意図的に大きい型を小さい型に代入しようとしている(warningは気にしていない?) 3.昔のC言語の仕様と今の仕様が違う(昔はエラーにならなかった?) 4.VCでコンパイルしたのがダメ どれなのでしょうか?
|

|