c语言 %f 变量,f在数字之后

c language %f variable, and f after number

我想知道为什么有必要写%f on variable, and f after the number itself?。 我理解如果我想对机器进行特定,需要在数字后面写 f,但是当我在同一行声明变量是 f 时,为什么我需要这样做?

数字后面的 f 是为了使它成为浮点数而不是双精度数。在 C 中,3.14 是双精度数,而 3.14f 是浮点数。同样,您可以附加 ul 来使数字无符号 and/or 或长; 例如42U是unsigned int,42L是long,42UL是unsigned long,42ULL是unsigned长长.

%f 是一个格式说明符,用于告诉函数变量的类型。 C 并没有真正的原生类型自省,printf 也不是魔法。签名看起来像:

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

除非您在格式字符串中指定它,否则它不知道您传递的是什么。您还应该记住,可变函数没有类型安全性;你可以传递任何你想要的东西。例如,printf("%s", 1729); 是完全可以接受的。一些编译器能够确保格式字符串与您实际传递给它们的内容相匹配,但那是一个扩展,而不是 C 本身的一部分。