看qemu代码的时候,看到一条语句,像是逗号表达式,又跟以往见的不一样。
a = b? : 1;
在gcc下
int b = 2;
int a = 3;int main(void) {
a = b? : 1;
00401324: mov 0x402000<b>,%eax
00401329: mov %eax,%edx
0040132b: test %eax,%eax
0040132d: jne 0x401334 <main+50>
0040132f: mov $0x1,%edx
00401334: mov %edx,0x402004<a>
asm("nop");
}