я прекрасно понимаю, о том, как Е() и спецификатор формата работыЕ() и спецификатор формата ссылки
ПРИМЕЧАНИЕ: - Я использую Turbo C/C++ компилятор и вы си знаете GCC, г ++, и т.д. путь лучше, но проблема остается тем же
код: -
void main()
{
clrscr();
printf("%d %d %d");
getch();
}
выход: - 0 344 0
теперь
код: -
void main()
{
clrscr();
printf("%f %f %f");
getch();
}
выход: - Printf: форматы с плавающей запятой не связаны аварийное завершение программы.
сейчас, также обратите внимание, что я пробовал это примерно на 200 системах.
Вопрос: -Я считаю, что эти номера спецификаторов формата, отображаемые на выходе, не являются мусором, так как для каждой системы получается один и тот же результат, а также их связь между функцией printf() и спецификатором формата с помощью обработки файлов или указателя , Так может теперь кто-нибудь наконец сказать, что это может быть?
примечание: -результат может отличаться от IDE к IDE, но он такой же для компилятора на каждой системе, как я пробовал это также в кодовых блоках IDE.
«Я считаю, что эти номера спецификаторов формата, отображаемые на выходе, не являются мусором» - вы вызываете * неопределенное поведение *. Вера - это единственное, что вам нужно, потому что все остальное уже вышло из окна. – WhozCraig
Это неопределенное поведение. Вы используете спецификаторы формата, которые требуют дополнительных аргументов, но вы не можете их предоставить. Таким образом, вы получаете неуказанный мусор. Вы также неправильно объявляете 'main'. Он возвращает 'int' и должен быть объявлен как таковой. –
как я сказал, что я проверил это на большом нет. систем, поэтому да, я считаю, что результат для всех систем для обоих компиляторов был таким же, как и компилятор turbo c, на самом деле является компилятором borland c, созданным Деннисом Ритчи и отредактированным людьми в Борланде, и согласно ANSI C main может иметь недействительный тип возврата. – NeoR