☆天Cのoverflow



てんC 「むふう、では次のプログラムはいかがでしょうか?」


#include <stdio.h>


int main(void)

{

printf("%d\n", 100000);


return 0;


これは難問ですよ。このプログラムのどこが間違っているか


おわかりになられますか?


ヒントはこのプログラムをコンパイルした結果、表示される


次のエラー文にあります。


(EAZY IDECの場合)


ファイル「C:/Users/solarplexus/AppData/Local/EasyIDEC/project/22222/main.c」の

「8行目」で記述エラーを発見しました。

unrecognized character \x81



(Visual Studioの2018場合)


エラー (アクティブ) E0065 ';' が必要です Project6 c:\Users\solarplexuss\source\repos\Project6\Project6\Source.cpp 8

エラー C2065 '}': 定義されていない識別子です。 Project6 c:\users\solarplexuss\source\repos\project6\project6\source.cpp 8

エラー C1075 左側の 中かっこ '{' に対応するものがファイルの最後まで検出されませんでした。 Project6 c:\users\solarplexuss\source\repos\project6\project6\source.cpp 4



(Visual Studioの2019場合)


エラー C1075 '{': 一致するトークンが見つかりませんでした Project2 C:\Users\solar\source\repos\Project2\Project2\program1.cpp 4

エラー (アクティブ) E0020 識別子 "}" が定義されていません Project2 C:\Users\solar\source\repos\Project2\Project2\program1.cpp 8

エラー (アクティブ) E0065 ';' が必要です Project2 C:\Users\solar\source\repos\Project2\Project2\program1.cpp 8

エラー C2065 '}': 定義されていない識別子です。 Project2 C:\Users\solar\source\repos\Project2\Project2\program1.cpp 8


さあ、みなさん、わっかるーかなー?」


solarplexuss 「むうぅ、なぜぇ。


プログラムは完璧なはずなのにぃ・・・


なぜぇ正しく実行されないのおん? 


半角で打ち込まなければならない空白スペースを全角で


うちこんでいるわけでもないしぃ。」


てんC 

「ヒント(EAZY IDECの場合)


のエラー文で表示されている


 8行目と


unrecognized character 認識されない文字 


ここに秘密があります。」


solarplexuss 「認識されない文字?・・・認識されない文字・・・?


認識されない愛・・・?   ・・・・・???


なぜだー 」


てんC 「むふぅ」


solarplexuss


「たとえば全角文字なんかは認識されないよおな・・・


それで8行目となあるぅと・・・ 」


目をこらしてプログラムをみつめるsolarplexuss


solarplexuss 「・・・ あうっ 4行目の{ と8行目の}


なんかちがう・・・ 


なんと4行目の{ は半角英数字


   8行目の} は全角英数字


になっている!!!」


てんC 

「そうなんです。8行目の} を半角英数字の}にかえて


プログラムを実行すると


100000

続行するには何かキーを押してください_


とただしく表示されます。」


solarplexuss 「やるな、 べっぴんさん!」


てんC 「むっふふ。」


てんC 「おほん、ではでは、つぎのプログラム。」


嬉しそうなてんC。


てんC「 さあ、


#include <stdio.h>


int main(void)

{

printf("%d\n",1000000000000000000000);


return 0;

}


このプログラムはどこに問題があるでしょうか





答えは


printf("%d\n",1000000000000000000000);


の中の1000000000000000000000です。


このプログラムをコンパイルすると次のようなエラーが表示されることになります


(EAZY IDECの場合)


ファイル「C:/Users/solarplexus/AppData/Local/EasyIDEC/project/22222/main.c」の

「5行目」で記述エラーを発見しました。

integer constant overflow



(Visual Studioの場合)


エラー C2177 定数が大きすぎます。 Project6 c:\users\solarplexuss\source\repos\project6\project6\source.cpp 5

エラー (アクティブ) E0023 整数定数が大きすぎます Project6 c:\Users\solarplexuss\source\repos\Project6\Project6\Source.cpp 5



とエラーが表示されます。


英和辞典を調べてみると


integer とは英語で整数を表し


constantは日本語で定数をあらわし


overflowはイタリア語でも


あふれ; 《河川の》 氾濫.

オーバーフロー

桁あふれ《演算結果などが計算機の記憶・演算桁容量より大きくなること、

扱える数値の最大値を超えること。》


を意味しています。


つまり、この場合、定数である1000000000000000000000が


コンピューターの扱える数値を越えているということなのでしょう。」」


てんC 「・・・・・・・・」


solarplexuss 「 ありがとう、てんC,ところで次のプログラムも


どこかにエラーが


でるかもしれないんだが・・・・・


みてもらえないだろうか。」


てんC 「はい、何でしょう。」


次のプログラム















#include <stdio.h>


int main(void)

{

printf("いつも私たちをたすけてくれてありがとう。

あなたがいなければ、私たちはここまでたどりつくことは

できませんでした。感謝しています。あなたは私たちの一生の宝物です。

てんC\n");

return 0;

}


てんC 「・・・ありがとう・・・overflowです。」

  • Xで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます

新規登録で充実の読書を

マイページ
読書の状況から作品を自動で分類して簡単に管理できる
小説の未読話数がひと目でわかり前回の続きから読める
フォローしたユーザーの活動を追える
通知
小説の更新や作者の新作の情報を受け取れる
閲覧履歴
以前読んだ小説が一覧で見つけやすい
新規ユーザー登録無料

アカウントをお持ちの方はログイン

カクヨムで可能な読書体験をくわしく知る