Article View: fj.lang.c
Article #678Re: ((a)>(b)?(a):(b))って?
From: Masahiro Kondo
Date: Sun, 08 Mar 1998 00:00
Date: Sun, 08 Mar 1998 00:00
45 lines
2038 bytes
2038 bytes
こんにちは、近藤といいます。
S.Takeuchi wrote:
>
> #define max(a,b) ((a)>(b)?(a):(b))
> の式がわかりません.
>
> ((a)>(b)?(a):(b))をどう解釈すればよいのでしょうか?
>
((a)>(b)?(a):(b))は、「条件演算子」と言います。
機能としては、if文と同様ですが、式として評価されるので、
判定を文のなかに記述する場合に使用します。
#うまく説明が、できないので・・
たとえば、上記の演算であれば、
------------>
if((a) > (b))
(a) ; <== ifの結果が、真((a) > (b))の時、((a)>(b)?(a):(b))の値は、
(a)になる。
}else{
(b) ; <== ifの結果が、偽((a) <= (b))の時、((a)>(b)?(a):(b))の値
は、(b)になる。
}
<------------
ということになります。
したがって、
------------>
err= func( ) ;
printf("func("処理は、%s終了しました。\n", (err==0)?"正常":"異常" ) ;
/*
func()のリターン値で、以下の出力を切り替える。
errが、0の時-> "処理は、正常終了しました。"
errが、0以外の時->"処理は、異常終了しました。"
*/
<------------
なんて出来ます。
#私はマクロ以外では、あまり使いません。
# if文のほうが分かりやすいですから。
/***************************************
Masahiro Kondo (近藤 正博)
mako@mail.raidway.or.jp
***************************************/
Technical Details
Message-ID:
<3502459C.ED6DE1F3@mail.raidway.or.jp>Path:
arc1-ca.pugleaf.net!unknown!not-for-mailReferences:
<19980305004802tokyoweb@anet.ne.jp>Show Full Headers
Complete Article Headers
X-Google-Language: Japanese,JIS X-Google-Thread: 106434,d151a044f77db8ab X-Google-Attributes: gid106434,public From: Masahiro Kondo <mako@mail.raidway.or.jp> Subject: Re: ((a)>(b)?(a):(b))って? Date: 1998/03/08 Message-ID: <3502459C.ED6DE1F3@mail.raidway.or.jp> X-Deja-AN: 331899449 Content-Transfer-Encoding: 7bit References: <19980305004802tokyoweb@anet.ne.jp> Mime-Version: 1.0 To: "S.Takeuchi" <tokyoweb@anet.ne.jp> Content-Type: text/plain; charset=iso-2022-jp Organization: raidway.or.jp Raid Digital Systems site Newsgroups: fj.lang.c