C 如何键入用数字初始化的巨大数组的强制转换元素

C 如何键入用数字初始化的巨大数组的强制转换元素,c,arrays,casting,type-conversion,C,Arrays,Casting,Type Conversion,我有一个第三方C代码,它有一个用浮点数初始化的大型浮点数组。例如: float myArray[] = {1.2, 2.5, ....}; /*has thousands of elements*/ 当我编译时,我得到警告“从double截断为float”。我想摆脱这个警告。如果数组大小很小(例如两个),我可以使用标准类型转换并手动更新代码,如下所示: float myArray[] = {1.2f, 2.5f}; 或 但是,由于元素数量庞大,手动更新是不现实的。我是否必须编写一个脚本来编辑

我有一个第三方C代码,它有一个用浮点数初始化的大型浮点数组。例如:

float myArray[] = {1.2, 2.5, ....}; /*has thousands of elements*/
当我编译时,我得到警告“从double截断为float”。我想摆脱这个警告。如果数组大小很小(例如两个),我可以使用标准类型转换并手动更新代码,如下所示:

float myArray[] = {1.2f, 2.5f};

但是,由于元素数量庞大,手动更新是不现实的。我是否必须编写一个脚本来编辑源代码并在数字后加上“f”,或者是否有一种更简单的方法可以通过一次转换来对整个数组进行类型转换?例如:

float myArray[] = (float){1.2, 2.5, ...} /*does not work, issues syntax error*/

找到一个带有搜索和替换功能的文本编辑器,如MS notepad,然后让它用“f”替换字符串“”的每一个匹配项。

嘿,检查错误是否在这一行。因为,我尝试了一个类似的任务,但我没有收到任何这样的警告。我认为更容易找到一个支持正则表达式的编辑器(有很多)并将
(\。\d+)
替换为该范围内的
$1f
。@Balanivash:我再试了一次,仍然收到了警告。您可能需要查看编译器的警告设置。我收到一条消息说,
0个错误,0个警告
f、
替换
将修复您的示例。大多数编辑很容易做到这一点。
float myArray[] = (float){1.2, 2.5, ...} /*does not work, issues syntax error*/