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

对本文的支持 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM