開発環境
- OS X Lion - Apple(OS)
- TextWrangler(Text Editor) (BBEditの無料、light版)
- 言語: C
- コンパイラ: UNIX ccコンパイラ (汎用UNIX)
『実践プログラミング 第3版』 (Steve Oualline (著)、 望月 康司 (監修) (翻訳)、 谷口 功 (翻訳)、 オライリー・ジャパン、1998年、ISBN978-4900900646) の10章(Cプリプロセッサ)10.1(#define文)設問10-4を解いてみる。
設問10-4.
if文で実行されるのはDIEの1文目(1つ目のセミコロンまで)で、exit(8)はif文のブロックの外側になるから、適切なデータを受け取った場合も終了する。
修正してvalueの値を1と-1にしてテスト。
コード(TextWrangler)
#include <stdio.h> #include <stdlib.h> #define DIE \ {fprintf(stderr, "Fatal Error:Abort\n");exit(8);} int main(){ int value; value = 1; if(value < 0) DIE printf("We did not die\n"); return (0); }
入出力結果(Terminal)
$ cc -g -o sample sample.c $ ./sample We did not die $
コード(TextWrangler)
#include <stdio.h> #include <stdlib.h> #define DIE \ {fprintf(stderr, "Fatal Error:Abort\n");exit(8);} int main(){ int value; value = -1; if(value < 0) DIE printf("We did not die\n"); return (0); }
入出力結果(Terminal)
$ cc -g -o sample sample.c $ ./sample Fatal Error:Abort $
0 コメント:
コメントを投稿