cstdio stdio.h Пространство имен
Ссылка на C для cstdio гласит, что «Каждый элемент библиотеки определен в пространстве имен std». Однако вы обнаружили, что и std::printf, и printf работают, что поднимает вопрос о том, включают ли заголовки C символы в обоих пространствах имен.
Ответ более тонкий.
Включая cstdio
Включение cstdio импортирует символы в пространство имен std и, возможно, в глобальное пространство имен. Это связано с тем, что cstdio включает stdio.h, который представляет собой заголовок в стиле C.
Включение stdio.h
Включение stdio.h импортирует символы в глобальное пространство имен и возможно, в пространство имен std. Это связано с тем, что stdio.h — это заголовок в стиле C.
Функции совместимости
Использование заголовков в стиле C в C — это функция совместимости. Стандарт C 11 определяет, что для совместимости со стандартной библиотекой C стандартная библиотека C предоставляет 25 заголовков C, включая cstdio и stdio.h. помещается в пространство имен стандартной библиотеки с помощью соответствующего заголовка cname; помещается в глобальное пространство имен. область действия."
ЗаключениеПодводя итог, при включении заголовков в стиле C в C символы могут быть импортированы как в стандартное, так и в глобальное пространство имен, в зависимости от конкретной используемые заголовки и реализация компилятора. Однако не всегда гарантируется, что оба пространства имен будут содержать одни и те же символы.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3