首页 > 解决方案 > 为什么即使标识符未解析,构建也会成功?

问题描述

我在我的代码中使用了指令 snprintf:

snprintf(debugstr, sizeof(debugstr), "FW: %s ver %s\r\n", FW_NAME, FW_VERSION);

我正在使用带有编译器 XC16 v1.31 的 MPLAB IDE,并在项目属性部分启用了“使用旧版 libc”选项。当我构建项目时,我收到消息:“构建成功(总时间:104 毫秒)”。

但是,在编辑器窗格的源 .c 文件中,当我将鼠标指针移到上述代码行号上时,会显示一条错误消息:“无法解析标识符 snprintf”(请参阅​​随附的图像)。在此处输入图像描述

我的问题是:项目成功构建并同时出现未解析的标识符错误消息是否正常?为什么?

感谢您的关注!

G

标签: cprintfidentifier

解决方案


来自 snprintf() 的 MAN 页面

snprintf(), vsnprintf():
_XOPEN_SOURCE >= 500 || 
_ISOC99_SOURCE || 
/* Glibc versions <= 2.19: */ _BSD_SOURCE

所以你需要开始你的源文件:

#define _BSD_SOURCE

推荐阅读