LINUX.ORG.RU

Оказывается, в Си можно вот так...

 ,


0

4
#include <stdio.h>
#include <stdlib.h>

int main(void) {
  puts( getenv("FOO") ?: "FOO is undefined" );
  return 0;
}

GCC и Clang позволяют пропускать второй аргумент тернарного оператора, и в итоге можно делать вот такие штуки. Код выше аналогичен следующему:

#include <stdio.h>
#include <stdlib.h>

int main(void) {
  char *tmp = getenv("FOO");
  if(!tmp)
    tmp = "FOO is undefined";
  puts(tmp);
  return 0;
}

Теперь я вообще не понимаю, как я без этого раньше-то на Си писал!

Ответ на: комментарий от firkax

Попробуем другой инстанс: http://envs.sh/ekI.go

Причина отказа 0x0.st, возможно, в этом (tl;dr: сайту прилетел бан от ISP и публичных DNS резолверов).

kaldeon
()
Последнее исправление: kaldeon (всего исправлений: 1)