<紙>さんLOG

「パソコンヲタクの雑記帳」
 PC/Linux系/物理・化学で遊んでいます。
思いついたことを綴っています。

C(gcc) 入門(3)

2010年03月19日 | PCクリニック
ご訪問ありがとうございます。


C(gcc) 入門中 ですが、
「日経ソフトウェア」の「2009年12月号」を目にしました。
「C言語アラカルト」に「プログラムの終わり方」が載っていました。

通常は、「main」関数での「return文」で終わりますね。
他に、どこででも終われる「exit関数」や「abort関数」などがある。

以上は、何となく分かっていたつもりですが、・・・・・


「atexit関数」を知りました。

記事の中に「main関数のreturn文はプログラムの終わりではない」
とあります。
ここで説明しているのが「atexit関数」でした。
参考ソースコードとして、リストが載っています。

記事中のソースコードはダウンロードできると云うことで、
ダウンロードさせて頂きました。

<紙>流のコーディングパターンに整形し、
「Relo」上で実行するための一文「int a=getchar();」
を追加したり、
コメントを追加しました。



「main関数のreturn文」の後で、
「livingdead関数」が実行されている!

  「exit関数」で終わろうとした時でも、
  「atexit関数」で登録しておいた「関数」が実行される。
  また、
  「関数」は複数登録できて、全て実行される。
とあります。
(なお、実行順序は、後から登録した方が先に実行されるようです)

また、1つ勉強しました。


そうそう、
「Relo」でコンパイルエラーが出たとき、ソースの行番号が表示される。
でも、エディタペインに行番号が出ていないと不便でした。
今になって、みつけました。
「Tools」-「Options」メニューの
「Style」タブに、「Show Line Numbers」チェックボックスがある!
これにチェックを入れました。


と云うことで、gcc(C)言語仕様の勉強中です。     



見ていただきありがとうございました。
お帰りに投票して頂けると嬉しいです。 ⇒ 日記@BlogRanking

人気BlogRanking ⇒ 

blogram ⇒ blogram投票ボタン