Согласно стандарту C, подпункт 6.10.2, пункт 5 [ISO/IEC 9899: 2011],
Реализация должна обеспечивать уникальные сопоставления для последовательностей состоящий из одного или нескольких недигитов или цифр (6.4.2.1), за которым следует период (.) и один недигит. Первый символ не должен быть цифра. Реализация может игнорировать различия в алфавитном случае и ограничить отображение восемью значимыми символами до период.
Это означало бы, что если два включенных файла имеют первые 8 символов, то заголовок, который он фактически выбирает, - undefined.
Когда я компилирую с помощью clang или gcc, я не сталкивался с этой проблемой. Однако существует ли документальное поведение для включения исходного файла в GCC и Clang?
В современном мире мне было бы странно, если бы какой-либо компилятор действительно ограничивал 8 символов.
Ссылка: C11 WG14 черновик версии N1570, Стандарт C сертификации Cert C