Несмотря на то, что люди изъяли из моих слов слова о практическом использовании этой функции, до сих пор никто не пытался защитить выбор синтаксиса.
Насколько я знаю, опечатка, которая может просочиться в результате, вероятно, была просто пропущена. В конце концов, кажется, что устойчивость к опечаткам была не на виду у Денниса, как показано далее:
if (a = b);
{
printf("%d", a);
}
Кроме того, существует вероятность, что не стоит использовать дополнительный символ для объединения строковых литералов - в конце концов, с двумя из них ничего не поделаешь, и наличие символа может создайте соблазн, чтобы попытаться использовать его для конкатенации строк во время выполнения, что выше уровня встроенных функций языка C.
Некоторые современные языки более высокого уровня, основанные на синтаксисе Си, отбросили эту запись, предположительно, потому что она подвержена опечаткам. Но в этих языках есть оператор для конкатенации строк, такой как +
(JS, C #), .
(Perl, PHP), ~
(D, хотя это также сохранило синтаксис сопоставления C), и константа свертывания ( в скомпилированных языках, во всяком случае) означает, что производительность во время выполнения не снижается.