Сведенное к соответствующим включениям и выводам, это в основном следующее:
Код: Выделить всё
#include
#include
#include
int main() {
printf("Answer %d\n", 42);
puts("Question?");
}
- или или в C++17 (ISO/GCC)
Код: Выделить всё
- или в C++11/C++14 (ISO/GCC)
Код: Выделить всё
- на C++98 (ISO/GCC)
Код: Выделить всё
Код: Выделить всё
#include
int main() {
printf("printf without #include \n");
return 0;
}
Я не нашел никакой информации на cppreference.com
- std::printf, std::fprintf, std::sprintf, std::snprintf - cppreference.com
- std::puts — cppreference.com
- printf, fprintf, sprintf, snprintf, printf_s, fprintf_s, sprintf_s, snprintf_s — cppreference.com
- puts - cppreference.com
Как я могу эффективно контролировать/предотвращать подобные включения?
[1] код, на который ссылаются, теперь содержит оператор включения, но я почти уверен, что его не было на этапе, когда я скопировал его... или, может быть, я скопировал только его часть ? ... в любом случае наблюдаемое поведение соответствует описанному выше.
Подробнее здесь: https://stackoverflow.com/questions/660 ... c-includes