Linuxカーネルのコードを読んでいて?:なんて演算子が使われていて???と思ったのでめも。
gccの拡張機能で3項演算子の拡張としてUsing the GNU Compiler Collection (GCC): Conditionalsなんてのがありました。
以下のようなコードを
z = x ? x : y
このように置き換えることが可能
z = x ?: y
実際使ってみるとこんな感じに。
masami@saga:~$ cat a.c #include <stdio.h> int main(int argc, char **argv) { char *p = argc > 1 ? argv[1] : NULL; printf("%s\n", p ?: "hoge"); return 0; } masami@saga:~$ ./a.out hoge masami@saga:~$ ./a.out foo foo
( ´ー`)フゥー...
まつもとゆきひろ コードの未来(日経BP Next ICT選書)
- 作者: まつもとゆきひろ
- 出版社/メーカー: 日経BP社
- 発売日: 2015/08/04
- メディア: Kindle版
- この商品を含むブログを見る