2

编译此代码时,我不理解以下错误消息。我找不到它有什么问题。

Description Resource Path Location
Type expected ‘)’ before ‘SCNu64’.  

#include <inttypes.h> 
int calc_rate(uint64_t *rate, char val[], char mult[]) {
     int rc = sscanf(val, "%" SCNu64 "%2s", rate, mult);  
}
4

1 回答 1

3

如果您同时包含<inttypes.h><stdio.h>包含两者,则显示的代码片段可以干净地编译。(除非范围内有原型,否则您不能sscanf()合法调用。)这意味着问题出在您所显示的代码之前。或者这意味着您的编译器不提供完全支持 64 位类型的支持,除非您在相对晦涩的大型机上,或者您不是在 C99 或 C11 模式下编译,否则这不太可能。

于 2013-11-05T03:56:28.483 回答