我试图将用C ++编写的内容重新编写为C。
double sclk_freq_mhz = (double)pLog->clk_freq / 1000L;
在
clk_freq
所属的pLog结构中,其类型为unsigned int
,因此为何将其类型强制转换为double
。但是,我注意到在1000的末尾有一个L
。这是什么L
?它似乎是某种我不熟悉的格式说明符或长度说明符。如果我想用C编写以上语句,该怎么办?我是这样写的还是什么?
double sclck_freq_mhz;
sprintf(sclck_freq_mhz,"%fL",pLog->clk_freq);
谢谢!
最佳答案
L
中的1000L
指示此整数文字为long
类型。
至于如何将C ++代码转换为C,答案是:它已经是合法的C代码。您使用sprintf
的代码没有任何意义。
关于c - C的格式说明符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27995732/