Day 20.
В C и C++ есть альтернативные варианты записи некоторых операторов. Например,
&& можно записать как and. Или != можно заменить на not_eq. Такие альтернативы появились в силу ограниченности некоторых клавиатур, в которых иметь символ & (и другие) было не всегда возможно. Сегодня иногда некоторые программисты предпочитают использовать некоторые из альтернативных вариантов записи ради улучшения читаемости:
if (a and b)
// over
if (a && b)
Это всё субъективно конечно.
Есть ещё альтернативные токены для записи скобок
[] {} и # ##. Есть ещё триграфы: ещё одна альтернатива с чуть более широким набором символов (deprecated в C23).
Ваша программа могла выглядеть так:
%:include <stdio.h>
%:include <stdlib.h>
??=include <iso646.h>
int main(int argc, char** argv)
??<
if (argc > 1 and argv<:1:> not_eq NULL)
<%
printf("Hello %s??/n", argv<:1:>);
%>
else
<%
printf("Hello %s??/n", argc? argv??(42??'42??) : __FILE__);
%>
return EXIT_SUCCESS;
??>
Мы так лабы сдавали в универе.
Последние удалены, так как несут проблемы и могут менять ваше поведение. Из-за того, что они processed early, вместо
"What's going on??!"
вы можете получить
"What's going on|"
Проблемес.
@thisnotes. Patreon, Boosty.
Спасибо Artyom Garkavy и niki4smirn.