森山です。

   質問しておきながら、中々時間が取れなくて返事が遅れて
しまいました。どうもすみません。

On Fri, 23 Jul 2004 01:06:12 GMT
KIMURA Shigenobu <skimu@mac.com> wrote:
 
> C には予約語はあって予約関数というのはないです.

  すみません、これは私の間違いで予約語の事です。

> C で書く時は C の作法で考えるように頭を切替える
> のがいいと思います.

  どうも、そうするしかなさそうですね。

#   何か間違いにくい記述方法が有るのかも知れないと考え
# 投稿しました。

On 23 Jul 2004 09:18:08 GMT
yas@is.tsukuba.ac.jp (Yasushi Shinjo) wrote:

> C言語では、ポインタが0になるということはあり得ないとしてプ
> ログラムを作ることが多いです。ですから、ポインタを返すような
> 関数では、失敗した時に0を返します。

  あ!、そおゆう事なんですね...気が付かなかった...

> 値がポインタではない時には、論理演算と同じで、正解が0以外、
> 失敗が0というのも、すぐ思いつきます。たとえば、こんな感じ。
> 
>    if( isalpha(c) && islower(c) )
>    {
>        printf("アルファベットでかつ小文字です。");
>    }
> 
> 少し紛らわしいのが、strcmp() かなあ。あれは、結果を == とか 
> < とか > で比較できるので、その部分を見るようにして、
>    if( strcmp(s,"ok") == 0 )
> のように、== 0 を書きます。
> 
> あと、(Unixの) システムコール系は、失敗すると -1 で、成功す
> ると正の数という風になっているのも多いです。

  細かい説明ありがとうございます。

> 工夫するなら、マクロか何か書いて、こうする手もあります。
> 
> #define iserror(res) (res)
>    res = functionName ();
>    if ( iserror(res) ) {
>            エラー処理
>    } else {
>            通常処理
>    }

  参考にしてみます。どうもみなさんありがとうございました。

K.Moriyama