Несколько вопросов по стандарту:
1) Стандарт запрещает пользователю использовать зарезервированные имена, запрещает ли он также изготовителю компилятора использовать не определенные стандартом незарезервированные имена? Если да, то где это написано?
2) Запрещает ли стандарт изготовителю компилятора добавлять нестандартные заголовочные файлы?
3) Запрещает ли стандарт изготовителю компилятора использовать незарезервированные имена в нестандартных заголовочных файлах?
4) Каким образом стандарт заставил Microsoft использовать зарезервированные имена в нестандартном (с точки зрения стандарта языка) заголовочном файле io.h, в то время как имена в заголовочном файле windows.h большей частью нормальные? То есть почему open вдруг стал deprecated и нужно видите ли использовать _open, а CreateFile нет?
Мои ответы:
1) Не уверен, но похоже не запрещает (а должен бы).
2) Нет.
3) Конечно нет.
4) Никаким, это непрошенная самодеятельность Microsoft.
Возражайте, пожалуйста.
PS. Вопросы и ответы в равной мере относятся и к C, и к C++.