函数的输入时指向flash数据变量的指针的PClint编译问题

2020-02-09 09:15发布

外部声明一个函数:
enxtern void XXXXXX(uint16_t a, rom unsigned char *b, uint8_t c, uint8_t d);
其中uint16_t 就是unsigned int;uint8_t就是unsigned char;
就是这个rom unsigned char *b,试过几种方式来typedef这个类型都pclint报错:
expected a type
no explicit
expecting',' or ')'
但是又一定要用typedef,不然也报错。
谁知道该怎么去解决啊?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
huanghaiming
1楼-- · 2020-02-09 10:03
使用rom声明变量是PIC特有遇到的问题,也不知道PClint编译方面会不会有合适的解决方法。
theophilus
2楼-- · 2020-02-09 10:58
这个是绝对编译不过,只有改规则。。。
要不在出现的代码部分中,使用
lint -eXXX
来绕过(放到注释里比如: /* lint -e123 */ , XXX是错误代号)

当然推荐的方法是
/* lint -save -e XXX */
blah blah blah
/* lint -restore */

建议你先看一下pclint的pdf文档,不看pdf也至少要看看FAQ1和FAQ2: http://www.gimpel.com/html/techfaq.htm
theophilus
3楼-- · 2020-02-09 16:13
还有就是针对符号、宏,依次制定的方法,你可以参考一下QEP/C的做法:
http://www.state-machine.com/resources/AN_QEP_C_PC-Lint.pdf
dr2001
4楼-- · 2020-02-09 18:27
 精彩回答 2  元偷偷看……
huanghaiming
5楼-- · 2020-02-09 21:41
回复【4楼】dr2001
-----------------------------------------------------------------------


#define rom
屏蔽掉这些编译器扩展的关键词

就是如何?

一周热门 更多>