Я согласен, было бы удобно, чтобы идентификаторы начинались с цифры. Один или два человека упомянули, что вы можете обойти это ограничение, добавив подчеркивание к вашему идентификатору, но это действительно ужасно.
Я думаю, что часть проблемы связана с числовыми литералами, такими как 0xdeadbeef, из-за которых сложно придумать легко запоминающиеся правила для идентификаторов, которые могут начинаться с цифры. Один из способов сделать это - разрешить что-либо, совпадающее с [A-Za-z _] +, которое НЕ является ключевым словом или числовым литералом. Проблема в том, что это может привести к странным вещам, таким как 0xdeadpork, но не 0xdeadbeef. В конечном счете, я думаю, что мы должны быть справедливы ко всем видам мяса: P.
Когда я впервые изучал C, я помню, что правила имен переменных были произвольными и строгими. Хуже всего было то, что их было трудно запомнить, поэтому я перестал пытаться учить их. Я просто сделал то, что чувствовал себя хорошо, и это сработало довольно хорошо. Теперь, когда я многому научился, это не кажется таким уж плохим, и я наконец-то нашел способ научиться этому правильно.