Работа с приловом определения, вызванные C ++, включаетC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Работа с приловом определения, вызванные C ++, включает

Сообщение Anonymous »

В комментарии к другому ответу мне показали пример кода, который, казалось бы, использовался printf и ставит без включения , но онлайн -компилятор не жаловался.

Код: Выделить всё

#include 
#include 
#include 

int main() {
printf("Answer %d\n", 42);
puts("Question?");
}
< /code>
Экспериментирование с GCC 8.1.0 (упакованным с Code :: Blocks 20.03), я обнаружил, что включение может быть дополнительно уменьшено до < /p>
[list]
[*]
или или в c ++ 17 (iso/gcc)
[*] или в C ++ 11/C ++ 14 (ISO/GCC)
[*] в C ++ 98 (iso/gcc)
[/list]
Также образец теста - C ++ 14 (GCC 8.3) - на ideone.com Компилируется и работает нормально:

Код: Выделить всё

#include 

int main() {
printf("printf without #include \n");
return 0;
}
Это также верно для других определений из , как файл .
Я не нашел информации на cppreference.com
  • cppreference.com
  • std :: puts - cppreference.com
  • printf, fprintf, sprintf, snprintf, printf_s, fprintf_s, sprintf_s, snprintf_s - cppreference.com
  • puts - cpprecrece.com
  • puts - cpprecrece.com
  • puts - cp /> < /ul>
    Я также попробовал несколько веб -сайтов и, таким образом, поиск, но до сих пор не был успешным. Контроль/предотвратить этот вид включения?
    2024 Обновление:
    Даже сегодня мы можем наблюдать за этим поведением в GCC 13.2:



    Подробнее здесь: https://stackoverflow.com/questions/660 ... c-includes
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»