C развивался и стал очень популярным до того, как это было запланировано комитетом по стандартам.Вследствие этого было много существующего кода.
При установке стандарта C или обновлении старого стандарта важной целью является не «сломать» старый код.Желательно, чтобы код, который работал с предыдущими компиляторами, продолжал работать с новыми версиями языка C.
Введение нового ключевого слова (или любого нового определения или значения слова) может сломать старый код, поскольку, когдапри компиляции слово будет иметь новое ключевое слово, а не идентификатор, означающий то же, что и предыдущие компиляторы.Код должен быть отредактирован.В дополнение к затратам людей, которые платят за редактирование кода, это также может привести к появлению ошибок, если будут допущены какие-либо ошибки.
Для решения этой проблемы было создано правило, согласно которому идентификаторы, начинающиеся с подчеркивания, были зарезервированы.Создание этого правила не сломало много старого программного обеспечения, так как большинство людей, пишущих программное обеспечение, предпочитают использовать идентификаторы, начинающиеся с букв, а не подчеркивания.Это правило дает стандарту C новую возможность: используя подчеркивание при добавлении новых ключевых слов или других новых значений для слов, он может делать это, не нарушая старый код, если этот старый код подчиняется правилу.
Новые версии стандарта C иногда вводят новые значения для слов, которые не начинаются с подчеркивания, например bool
.Однако эти новые значения обычно не вводятся в основной язык.Скорее они вводятся только в новых заголовках.При создании типа bool
стандарт C предоставил новый заголовок <stdbool.h>
.Поскольку старый код не может включать <stdbool.h>
, так как он не существовал на момент написания кода, определение bool
в <stdbool.h>
не нарушало бы старый код.В то же время он дает программистам, пишущим новый код, возможность использовать новую функцию bool
, включая <stdbool.h>
.