解答例 4-1

【問1】

intサイズが2バイト、longサイズが4バイトの処理系では、long型の変数 c は、a + b の結果 40000 を格納することができるが、 int と int の演算である a + b は型変換が行われず、40000 を格納することができない。

よって、a + b を long型でキャストしてやる必要がある。

#include <stdio.h>

int main( void )
{
	int a = 30000, b = 10000;
	long c;
	
	c = ( long ) a + b;
	
	return 0;
}

【問2】

#include <stdio.h>

int main( void )
{
	int a = 3000;
	int b = 5000;
	long kekka;

	kekka = ( long ) a * 12 + ( long ) b * 8;
	printf( "結果 = %ld\n", kekka );

	kekka = ( long ) a * 8 + ( long ) b * 12;
	printf( "結果 = %ld\n", kekka );
	
	return 0;
}


 練習用にキャストを用いていますが、a, b 共に long を用いてキャストを省いてもかまいません。
  また、intサイズが4バイトの処理系ではこのキャストは不要です。

戻る


banner初心者のためのポイント学習C言語」
Copyright(c) 2000-2004 TOMOJI All Rights Reserved