工具/软件:TI C/C++编译器
Win7 32位(SP1)、CCS 6.2.0.00050、F28023。
我一直在尝试使用双精度浮点(64位)数学来制作系数生成器。
我最后想、您需要将每个变量定义为长双精度型、因为只需使用双精度型与浮点型(32位)相同
我还看到、我必须将字母 L 布置到任何常量中、使编译器将它们视为长双精度型(例如、10.0L)
但是、sin (double_variable)、cos (double_variable)和 pow (10.0L、double_variable)等函数在32位浮点大小下仍然执行此操作。
对于以下情况、C 编译器将数字转换为浮点值、执行 sin、然后将其转换回长双精度型值。
long double d_sine_omega; long double d_omega; ... d_omega 的一些分配... D_sine_omega = sin (d_omega);
生成的汇编代码
3f092c:5cad MOVZ AR4、@SP 3f092d:DC92 子 B XAR4、#18 3f092e:5CA4 MOVZ AR4、@AR4 3f092f:767F2FB4 LCR FD$TOFS 3f0931:767F2C07 LCR sin 3f0933:5cad MOVZ AR4、@SP 3f0934:DC98 子 B XAR4、#24 3f0935:88A4 MOVZ AR6、@AR4 3f0936:767F306D LCR FS$$TOFD
这些函数是否有 long double 函数?
谢谢、Mark。