/*<<-------------------------------------------------------------------------- // Project  : prjFamily Computer(where it was first launched in 1983) // Function : main // Summary : スーパーマリオとファミスタのオーバーフローを再現 // 作成者 : Alloc ( from the method named [Marshal.Alloc.HGlobal] ) // 作成日 : 2008/04/18 // 最終更新日時: 2008/04/22 16:56 // 特記事項 : なし ---------------------------------------------------------------------------->>*/ #include /*ヘッダーファイル*/ #include /*ヘッダー for strcpy */ /*-------------------- 関数名:main 戻り値:int型 引数 :無し ---------------------*/ int main(void) { /*変数の宣言と初期化*/ char cMario = 0; /* 符号有 8 bits */ unsigned char ucHomerun = 0; /* 符号無 8 bits */ short int siI = 0; /* short int = 2 bytes */ short int siSize = 0; /* 当環境上はintは default = 4 bytes */ char cBuff = 0; /* 初期化しないと-52'フ'というゴミが入ってる */ /*size出力*/ printf("charのサイズ:%d byte(-128〜127)\n",sizeof cMario); printf("unsigned charのサイズ:%d byte(0〜255)\n",sizeof ucHomerun); //演算 for(siI=0; siI<255; siI++ ) { if ( siI == 127 ) { printf("マリオの残数増殖1段階目:最大値=%d\n",(int)cMario); cBuff = cMario; cBuff += 1; printf("マリオの増殖1段階目限界前(1の補数):=%d\n",(int)cBuff); cBuff += 1; printf("マリオの増殖1段階目限界後(2の補数):=%d\n",(int)cBuff); } cMario++; ucHomerun++; } /*ファミスタの場合*/ printf("ファミスタのホームラン数:最大値=%d\n",ucHomerun); cBuff = ucHomerun; cBuff++; printf("ファミスタのホームラン数:オーバーフロー後=%d\n",cBuff); /*戻り値を返す*/ return 0; }