2
我正在使用運行Linux的MINI2440板(S3C2440 CPU)。鑄造int浮動導致非法指令
我有這樣的工作:
double a=168.168;
printf("\nsqrt(%f)=%f\n", a, sqrt(a));
但我這導致 「非法指令」:
float a = 0.0;
int b = 1;
a = (float)b;
我不能投一個int爲float ..
我嘗試添加/刪除-msoft_float以及-D__GCC_FLOAT_NOT_NEEDED選項,但它不會改變任何內容。
有什麼想法?
嘗試'a = b;'並依靠編譯器做正確的事情(*許多*/*一些*/* C中的一些*強制轉換都是錯誤的)。 – pmg 2014-08-27 15:34:38
可能是代碼生成錯誤。你可以通過編譯代碼片段來發布你的程序集,以防萬一嗎? – 2014-08-27 15:35:23
這是編譯錯誤還是運行錯誤? – pmg 2014-08-27 15:37:52