Comma operator 在wiki上的介紹:
http://en.wikipedia.org/wiki/Comma_operator
假設...
int aaa(){
...
}
void bbb(){
...
}
若遇到下面這種寫法
ret=flag? aaa(): bbb();
編譯時會發生錯誤:
error: void value not ignored as it ought to be
因為此時若flag為0,則ret=bbb();
但是bbb()沒有回傳東西(void),
此時可以使用下面這種寫法:
ret=flag? aaa(): (bbb(),NULL);
其中(bbb(),NULL)永遠回傳0(NULL)
沒有留言:
張貼留言