c язык% f переменная и f после числа - PullRequest
0 голосов
/ 28 октября 2018

Мне было интересно, почему необходимо писать % f для переменной, а f после самого числа? .Я понимаю необходимость писать f после числа, если я хочу быть конкретным с машиной, но зачем мне это делать, когда я объявил в той же строке, что переменная f?

Надеюсь, ядал понять, и спасибо за любую помощь!

1 Ответ

0 голосов
/ 28 октября 2018

f после числа означает, что он должен быть плавающим вместо двойного.В C 3.14 - это двойное число, тогда как 3.14f - это число с плавающей точкой.Аналогично, вы можете добавить u и l, чтобы сделать числа без знака и / или длинной; например, , 42U - это целое без знака, 42L - длинное, 42UL - длинное без знака и 42ULL - длинное без знака.

%f - это спецификатор формата, который сообщает функции тип переменной.C не имеет интроспекции нативного типа, и printf не волшебство.Подпись выглядит так:

int printf(const char *format, ...);

Она не имеет представления о том, что вы передаете, если вы не укажете ее в строке формата.Следует также иметь в виду, что нет никакой безопасности типов для функций с переменными числами;Вы можете передать все, что вы хотите.Например, printf("%s", 1729); вполне приемлемо.Некоторые компиляторы способны удостовериться, что строки формата соответствуют тому, что вы на самом деле передаете им, но это расширение, а не часть самого языка C.

...