Короче говоря, не существует никакого заголовочного файла, который бы сообщал вам об этом, что является частью спецификаций стандарта ANSI / ISO C, которые определяют структуру синтаксиса и механизма среды для самого языка C. В стандартах до C89 максимальная длина идентификатора составляла 6 из-за небольшого объема памяти и среды в таких системах, как мейнфреймы и системы * nix.
Сегодня последний стандарт - это стандарты C99, которые определяют, что максимальная длина идентификатора должна быть 32, причина довольно проста и логична ... компилятор работает, анализируя входной поток, который будет передан как команда Строковый аргумент, make-файл или решение (для сред Microsoft Visual Studio), синтаксический анализатор является жестким и фиксированным и, следовательно, накладывает ограничения на длину идентификатора, чтобы анализатор мог смотреть вперед и видеть, есть ли еще какие-либо символы. Это связано с этой причиной.
Другая причина заключается в том, что большинство компиляторов C ++ используют искажение имен в идентификаторах, что, как указал Джонатан Леффлер, может запутать компилятор, а также связь кода.