我试图将用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/

10-11 04:36