<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" 
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>C 的 &amp;&amp; 與 ||</title>
<link>http://blog.roodo.com/thinkingmore/archives/9316397.html/</link>
<description><![CDATA[前一陣子看Javascript 語言精髓與編程實踐這本書的時候，發現可以用 &amp;&amp; 來達到 if ，用 || 達到 if not 的效果，所以下面是以 C/C++ 實驗的結果：


#include &lt;stdio.h&gt;

int say_hello( void )
{
    printf("Hello world!!\n");
    return 0;
}

int main( int argc, char* argv[] )
{
    int flag=0;

    printf("flag=0\n");
    flag && say_hello(); // say_hello() won't be invoked
    flag || say_hello(); // say_hello() will be invoked

    printf("flag=1\n");
    flag=1;
    flag && say_hello(); // say_hello() will be invoked
    flag || say_hello(); // say_hello() won't be invoked

    return 0;
}


不過坦白說，這樣寫的結果是導致可讀性變差，只有自己維護這份 code 時，那是可以用，很多人維護一份 code 時，最好還是避免，或者，加上註解比較好。

我想 c# / java 應該也可以這樣作。

p.s. 如果不是呼叫函數的話，記得要使用 ( )，例如：
i && (j=100);
這就等同於：
if(i) j=100;
]]>
	</description>
<language>zh-tw</language>
<generator>Roodo Blog System</generator>
<copyright>All Rights Reserved</copyright>
<atom:link href="http://blog.roodo.com/thinkingmore/archives/9316397-comment.xml" rel="self" type="application/rss+xml" />
<item>
	<title>回應：C 的 &amp;&amp; 與 ||</title>
	<description><![CDATA[有趣~~

另, Michael, if(1 || say_hello()) { ... } 是永遠不執行 say_hello() 喔.]]>
	</description>
	<link>http://blog.roodo.com/thinkingmore/archives/9316397.html</link>
	<guid>http://blog.roodo.com/thinkingmore/archives/9316397.html#comment-19532239</guid>
	<author>freak@fsfoundry.org(fr3@K)</author>	<category>文章回應</category>
	<pubDate>Tue, 14 Jul 2009 00:47:42 +0800</pubDate>
</item>
<item>
	<title>回應：C 的 &amp;&amp; 與 ||</title>
	<description><![CDATA[c/c++ 裡，的確 && 的作法比較常見。
但在 python、ruby、boo 等語言裡，其實 || 也很常見。

就我所知 boo 裡有 unless 關鍵字，用來表示 if not，例如：i=100 unless i]]>
	</description>
	<link>http://blog.roodo.com/thinkingmore/archives/9316397.html</link>
	<guid>http://blog.roodo.com/thinkingmore/archives/9316397.html#comment-19456165</guid>
		<category>文章回應</category>
	<pubDate>Sun, 28 Jun 2009 02:41:01 +0800</pubDate>
</item>
<item>
	<title>回應：C 的 &amp;&amp; 與 ||</title>
	<description><![CDATA[&&的作法比較常見，||的作法就我看過的大部份是用在不管say_hello()的結果是什麼都要做某件事的時候，也就是if(1 || say_hello()) { ... }]]>
	</description>
	<link>http://blog.roodo.com/thinkingmore/archives/9316397.html</link>
	<guid>http://blog.roodo.com/thinkingmore/archives/9316397.html#comment-19451537</guid>
	<author>cct@aol.tw(Michael)</author>	<category>文章回應</category>
	<pubDate>Fri, 26 Jun 2009 23:41:55 +0800</pubDate>
</item>
</channel>
</rss>