在C中进行类型转换的替代方法?
我在一些代码中遇到了这一行,但在任何地方都找不到定义的语法:在C中进行类型转换的替代方法?,c,string,C,String,我在一些代码中遇到了这一行,但在任何地方都找不到定义的语法: *(float *)csCoord.nX = lImportHeight* .04f; /* magic number to scale font size */ 如果我从.04f中删除了f,那么编译器会给出一个警告,指出由于从“double”到“float”的转换可能导致数据丢失。我猜f在做某种类型的打字 以前有人见过这个吗?这在C标准中定义在哪里?尾随的f向编译器指示它是浮点型文字,就像指示文字字符串和L后缀指示长整型一样 相同
*(float *)csCoord.nX = lImportHeight* .04f; /* magic number to scale font size */
如果我从.04f中删除了f,那么编译器会给出一个警告,指出由于从“double”到“float”的转换可能导致数据丢失。我猜f在做某种类型的打字
以前有人见过这个吗?这在C标准中定义在哪里?尾随的f向编译器指示它是浮点型文字,就像指示文字字符串和L后缀指示长整型一样
相同。尾随的f向编译器指示它是浮点型文字,就像指示文字字符串和L后缀指示长整型一样
这是相同的。不知道它在标准中的定义位置,但可以使用f表示浮点,否则编译器会假定它是双精度浮点。类似地,您可以通过添加u或long by l小写字母ell等方式指定一个无符号整数。不知道它在标准中的定义位置,但您可以使用f表示浮点,否则编译器会假定它是双精度浮点。类似地,您可以通过添加u或long by l小写字母ell等来指定无符号整数。如果没有f,则数量0.04为双精度。当你用一个双人把lImportHeight打多倍,你会得到另一个双人。然后将其存储在浮点大小的内存位置,从而失去精度。对于f,0.04f是浮点文本。用它你可以得到一个浮球;则赋值不会导致精度损失。如果没有f,则数量0.04为双倍。当你用一个双人把lImportHeight打多倍,你会得到另一个双人。然后将其存储在浮点大小的内存位置,从而失去精度。对于f,0.04f是浮点文本。用它你可以得到一个浮球;那么赋值不会导致精度损失。到底是什么问题?你的编译器是否阻塞了.04f?试一试
(float) .04
到底是什么问题?你的编译器是否阻塞了.04f?试一试
(float) .04
不,它编译得很好。我只是以前从未见过这种语法,我想确保我理解它。不,它编译得很好。我只是以前从未见过这种语法,我想确保我理解它。