微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 反映:suyong哥,库里好像有一处有错误

反映:suyong哥,库里好像有一处有错误

时间:10-02 整理:3721RD 点击:
如图额,在ADC那个文件里有一处编译有错误,难道是因为我没配置好吗?



在工程选项对话框的“C/C++”标签页下,把“C99 Mode”选项打开即可。


问题的根本原因在于,经典版本的C语言对数据类型有强制匹配的要求,使同样是一个数据类型,有const和没有const是完全不同的。而在C99标准里,对这个限制有放松,没有const修饰的变量类型也可以传给const修饰的函数参数。当声明函数参数的时候使用const,表示在该函数在内部不会修改这个传入参数的内容,是“只读的”。这个特性被用来保护内存不会在函数内部被意外地更改掉,特别是在使用指针作为函数参数时,使用const对指针所指向的内容进行保护,会大大提高程序的安全性。

当然,如果你遵循LiteFwLib推荐的“二段编译”流程,编译库的工程已经配置好了。而在你实际需要进行开发的应用工程中,即使没有打开这个特性,也是不会产生错误的,同时,仍可以享受到内存保护的特性。


在工程选项对话框的“C/C++”标签页下,把“C99 Mode”选项打开即可。


问题的根本原因在于,经典版本的C语言对数据类型有强制匹配的要求,使同样是一个数据类型,有const和没有const是完全不同的。而在C99标准里,对这个限制有放松,没有const修饰的变量类型也可以传给const修饰的函数参数。当声明函数参数的时候使用const,表示在该函数在内部不会修改这个传入参数的内容,是“只读的”。这个特性被用来保护内存不会在函数内部被意外地更改掉,特别是在使用指针作为函数参数时,使用const对指针所指向的内容进行保护,会大大提高程序的安全性。

当然,如果你遵循LiteFwLib推荐的“二段编译”流程,编译库的工程已经配置好了。而在你实际需要进行开发的应用工程中,即使没有打开这个特性,也是不会产生错误的,同时,仍可以享受到内存保护的特性。

原来如此!虽然我听懂不怎么懂但就是这样弄就行了吧,suyong哥解答真详细~

已解决,是因为我未配置好的问题,现在可以了,结贴。suyong哥赞赞赞赞赞赞

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top