Spec-Zone.ru › GCC 9 CPP

11.2 Пределы реализации

CPP имеет небольшое количество внутренних ограничений. В этом разделе перечислены ограничения, которые стандарт C требует не быть ниже определенных минимальных значений, а также все остальные известные ограничения. Цель состоит в том, чтобы таких ограничений было как можно меньше. Если вы столкнетесь с недокументированным или неудобным ограничением, пожалуйста, сообщите об этом как об ошибке. См. Сообщения об ошибках в Руководстве по использованию GNU компилятора GCC.

Когда мы говорим, что что-то ограничено только доступной памятью, это означает, что внутренние структуры данных не налагают никаких внутренних ограничений, и память выделяется с помощью malloc или эквивалентом. Фактическое ограничение, следовательно, будет зависеть от многих вещей, таких как размер других выделенных компилятором одновременно, объем памяти, потребляемый другими процессами на том же компьютере и т. д.

  • Уровни вложенности файлов ‘#include’.

    Мы устанавливаем произвольное ограничение в 200 уровней, чтобы избежать бесконечной рекурсии. Стандарт требует как минимум 15 уровней.

  • Уровни вложенности условной включения.

    Стандарт C предписывает, что это должно быть как минимум 63. CPP ограничен только доступной памятью.

  • Уровни скобочных выражений в полном выражении.

    Стандарт C требует, чтобы это было как минимум 63. В выражениях условного препроцессора оно ограничено только доступной памятью.

  • Значимые начальные символы в идентификаторе или имени макроса.

    Препроцессор обрабатывает все символы как значимые. Стандарт C требует, чтобы значимыми были только первые 63.

  • Количество макросов, одновременно определенных в одном едином блоке трансляции.

    Стандарт требует, чтобы было возможно как минимум 4095. CPP ограничен только доступной памятью.

  • Количество параметров в определении макроса и аргументов в вызове макроса.

    Мы разрешаем USHRT_MAX, что не меньше 65 535. Минимальное значение, требуемое стандартом, составляет 127.

  • Количество символов на логической строке исходного кода.

    Стандарт C требует минимального значения в 4096. CPP не накладывает никаких ограничений на это, но вы можете получить неправильные номера столбцов, указанные в диагностике, для строк длиннее 65 535 символов.

  • Максимальный размер исходного файла.

    Стандарт не устанавливает никакого нижнего предела максимального размера исходного файла. GNU cpp отображает файлы в память, поэтому он ограничен доступным адресным пространством. Обычно это как минимум два гигабайта. В зависимости от операционной системы, размер физической памяти может или не может быть ограничением.

Далее: Устаревшие функции, Предыдущее: Определяемое реализацией поведение, Вернуться к: Детали реализации [Содержание][Индекс]

© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-9.5.0/cpp/Implementation-limits.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API