2012年4月19日木曜日

開発環境

『実践プログラミング 第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 コメント:

コメントを投稿