C言語なら俺に聞け(入門編)Part 105
■ このスレッドは過去ログ倉庫に格納されています
0007デフォルトの名無しさん
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でコンパイルしたのがダメ
どれなのでしょうか?
■ このスレッドは過去ログ倉庫に格納されています