Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在C中进行类型转换的替代方法?_C_String - Fatal编程技术网

在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

不,它编译得很好。我只是以前从未见过这种语法,我想确保我理解它。不,它编译得很好。我只是以前从未见过这种语法,我想确保我理解它。