Какова максимальная длина идентификатора C / C ++ в распространенных (сборочных) системах? - PullRequest
29 голосов
/ 15 мая 2011

Я не помню, чтобы стандарт говорил что-то о максимальной длине для идентификаторов, поэтому теоретически они могут быть long .В реальной жизни эти имена могут быть ограничены, по крайней мере, реализациями компилятора и компоновщика.

Хотя это должно работать на всех системах

int a;

этот фрагмент

#!/usr/bin/perl
print "int" . "b" x 2**16 . ";";

создает объявление, которое дает неопределенную ссылку на std:: что-то с ld при компиляции / компоновке (используя gcc / mingw).

Итак, каковы ограничения на размер идентификатора в разных системах?

Ответы [ 2 ]

43 голосов
/ 15 мая 2011
15 голосов
/ 15 мая 2011

В приложении B к стандарту C ++ говорится, что реализация должна поддерживать идентификаторы длиной не менее 1024 символов, но это не обязательно.

...