Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/72.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 将int强制转换为float将导致非法指令_C_Floating Point_Embedded Linux - Fatal编程技术网

C 将int强制转换为float将导致非法指令

C 将int强制转换为float将导致非法指令,c,floating-point,embedded-linux,C,Floating Point,Embedded Linux,我使用的是运行Linux的MINI2440板(S3C2440 CPU) 我有以下工作: double a=168.168; printf("\nsqrt(%f)=%f\n", a, sqrt(a)); 但我认为这会导致“非法指令”: 我不能将整数转换为浮点 我试图添加/删除-msoft_float以及-D_ugcc_float_NOT_所需的选项,但它没有改变任何东西 有什么想法吗?成功了 我没有指定-march=armv4t和-mtune=arm920t选项 现在可以很好地工作了,谢谢。试试

我使用的是运行Linux的MINI2440板(S3C2440 CPU)

我有以下工作:

double a=168.168;
printf("\nsqrt(%f)=%f\n", a, sqrt(a));
但我认为这会导致“非法指令”:

我不能将整数转换为浮点

我试图添加/删除-msoft_float以及-D_ugcc_float_NOT_所需的选项,但它没有改变任何东西

有什么想法吗?

成功了

我没有指定-march=armv4t和-mtune=arm920t选项


现在可以很好地工作了,谢谢。

试试
a=b并依赖编译器做正确的事情(C中的许多/一些/一些强制转换完全是错误的)。可能是代码生成错误。为了以防万一,您可以发布通过编译代码片段获得的程序集吗?这是一个编译错误还是一个运行错误?我认为您使用了错误的编译器,它将您的代码编译到您无法识别的asm。请使用
-fno builtin
double a=168.8+printf(“”)尝试您的第一个
sqrt
示例;我想它也会失败。
float a = 0.0;
int b = 1;
a = (float)b;