D:\Keil_v5\ARM\ARMCC\Bin\..\include\string.h(321): error: #169: expected a declaration

正点原子中源码FreeRTOS在使用:

string.h第321行:(报错)

+extern _ARMABI void *memset(void * /*s*/, int /*c*/, size_t /*n*/) __attribute__((__nonnull__(1)));

 

错误信息为:

D:\Keil_v5\ARM\ARMCC\Bin\..\include\string.h(321): error:  #169: expected a declaration
  +extern _ARMABI void *memset(void * /*s*/, int /*c*/, size_t /*n*/) __attribute__((__nonnull__(1)));
..\HARDWARE\TIMER\timer.c: 0 warnings, 1 error

 

我的疑惑是:

+extern _ARMABI void *memset( /*  ***  */);

为什么在extern前面会出现+,而且多个程序源码中的string.h都有+

 

解决方案:

方法1:删除+

 

方法2:

用以下语句:

extern _ARMABI void *memset(void * /*s*/, int /*c*/, size_t /*n*/) __attribute__((__nonnull__(1)));

替换源码中的:

+extern _ARMABI void *memset(void * /*s*/, int /*c*/, size_t /*n*/) __attribute__((__nonnull__(1)));

 

结果显示:

Build target 'FreeRTOS'
"..\OBJ\LED.axf" - 0 Error(s), 0 Warning(s).
Build Time Elapsed:  00:00:01

无报错!

 

感谢博主(https://www.cnblogs.com/sunny99/)

sumoier

对本文的支持 

 

posted @ 2020-10-09 10:16  20岁博客少女  阅读(3014)  评论(0编辑  收藏  举报