2013-06-23 3 views
3
#include<stdio.h> 
int main() 
{ 
    printf("%d\n", 4 ?: 8); 
} 

Согласно стандарту C эта программа является недействительной, поскольку отсутствует выражение между ? и : .А самым интересным заключается в том, что когда я компиляция коды при печати 4. как он будет печатать 4, а не показывать какую-либо ошибку компиляциипроблема с условным оператором

ответ

6

Это расширение gcc.

x ? : y 

эквивалентно

x ? x : y 

here См к деталям.

+2

+1 также для связывания документов gcc. – alk