<紙>さん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投票ボタン

最新の画像もっと見る

4 コメント

コメント日が  古い順  |   新しい順
Unknown (deepblur)
2010-03-19 12:09:12
atexit()関数、知りませんでした。
これがあれば、最後のメモリの解放とかの処理に便利そうですね。
使ってみます!
deepblur さんへ (<紙>)
2010-03-19 22:31:38
いらっしゃいませ。

そうですね、この様な関数があったんですね。
良く知って使いこなすと、便利かも?

今後とも、よろしくお願いいたします。
勉強になります~ (紙コップ)
2010-03-26 08:09:44
興味深かったです。

今更ですが、ReloっていうIDEがあるんですね。これいいですね!初めて知りました。

実は、自分もCを勉強しようと思いましたが、良さそうなエディタが見つからなくて、遠ざかっていました。VisualCホニャララ等は、機能がありすぎて、手軽でないし…。

また、お邪魔します!
紙コップ さんへ (<紙>)
2010-03-26 08:55:37
いらっしゃいませ。
何時も、ご訪問有り難う御座います。

そうですね、「Relo」ってなかなか良いです。
いっぺんで、気に入りました。

C言語なら、やはり、デファクトスタンダード(?)のgccでしょう?
で、Windows なら MinGW と云うことですネ?

今後とも、よろしくお願いいたします。

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。