Стандарты C говорят о ограничениях, например. г. ISO/IEC 9899: 201x определяет термин
ограничение
ограничение, либо синтаксическое, либо семантическое, с помощью которого изложение языковых элементов должно интерпретироваться
и говорится в главе Соответствие
Если "или" не будет требовать, чтобы он появился за пределами ограничение или ограничение времени выполнения нарушены, поведение undefined.
В главе Среда, подраздел Диагностика сказано
Соответствующая реализация должна давать по крайней мере одну диагностику сообщение (определено в соответствии с реализацией), если блок перевода для предварительной обработки или единица перевода нарушение любого синтаксического правила или ограничения, даже если поведение также явно указывается как undefined или определенный реализацией.
Итак, важно знать, каковы ограничения в C, например, для писателей компилятора, чтобы судить о необходимости диагностики или для программистов C, когда можно ожидать, что поведение диагностики, а не просто поведение w91 > . Теперь во всем стандартном документе есть разделы с надписью Ограничения, но я не могу найти окончательной формулировки относительно того, что именно ограничивает термин ограничение в стандарте.
- Являются ли ограничения все, что появляется в разделах под заголовком Ограничения?
- Является ли каждое требование, которое указано вне этих разделов, не является ограничением?
- Есть ли исчерпывающее описание ограничений в стандарте, который я пропустил?