restrict关键字引发的编译错误


最近开始学习使用STM32CubeMX,mcu用的是f407,IDE是IAR V7,工程生成代码配置如下:

blob.png

生成代码用IAR打开后进行编译,报错如下:

blob.png

定位到出错处是在 mpu_armv7.h 中,如下:

blob.png

然后很纳闷,这都是按照规则一步一步来的,代码是官方生成的,自己没有丝毫改动,为什么会报错,然后开始查找错误来源。找到了__RESTRICT这个宏定义处

blob.png

对这个 __restrict 不了解是什么意思,就问了下度娘,原来是C语言的一个关键字,关于编译器优化的(只能惭愧自己对C的了解尚浅),在Linux下写作 __restrict,

在Window下的IAR不认这种写法,所以编译报错了,去掉前面的两个下划线,编译OK!

blob.png

作为一个菜鸟,这是自己开始用STM32CubeMX碰到的第一个小bug,写下来纪念一下。

已邀请:

可不可以

赞同来自:

谢谢


happytaoxiaoli

赞同来自:

xiexie


happytaoxiaoli

赞同来自:

xiexie

要回复问题请先登录注册