В настоящее время я переношу некоторый код Unix в Windows и натолкнулся на довольно странное использование условного оператора, который является недопустимым синтаксисом в соответствии с Visual Studio (2010 или 2012).Странное использование условного оператора
скопировал и вставил без изменений:
filename = filename ? : h->filename;
Там нет никаких условий! Я предполагаю, что это либо проверка на пустую строку (из сортировки const char*
), либо на пустой & пустой, поскольку я не могу придумать ничего другого, что может быть.
Кто-нибудь видел это раньше? Спасибо.
Или http://stackoverflow.com/questions/2806255/why-would-you-use-the-ternary-operator-without-assigning-a-value-for-the-true: * "Это разрешено в GNU как неясное расширение до C "* –
Спасибо всем за отличный набор ответов :) – niemiro