Если я использую printf
, scanf
, puts
или какую-либо другую функцию в C (не C++) и не писать строку include, может ли она рассматриваться как неопределенное или неопределенное поведение?Правильно ли удалить #include <stdio.h> в C?
Как я помню, C не требовал декларации porotope вообще, но было рекомендовано, чтобы они разрешали компилятору делать приведения типов при вызове. И прототипы для printf
и другие такие функции не требуются, не уверены в пользовательских функциях.
PS: Этот вопрос относится к обсуждению в комментариях https://codegolf.stackexchange.com/a/55989/32091.
Как вы можете скомпилировать код с этими функциями без включения? – LPs
«C вообще не требует декларации поротопа» - это антикварный/средневековый C. С 1989 года требуются декларации (и вызов вариационной функции, если она не объявлена как вариационная, является, в частности, UB). Но почему вы хотите сделать это все равно? –
@LPs, easy: http://codepad.org/m4DB2Ndd - даже никаких предупреждений от gcc. – Qwertiy