«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Почему printf работает без std::` в C++, когда включен cstdio?

Почему printf работает без std::` в C++, когда включен cstdio?

Опубликовано 17 ноября 2024 г.
Просматривать:394

 Why Does `printf` Work Without `std::` in C   When `cstdio` is Included?

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