|
<p>AVR 单片机程序当中用到的 const 是什么意思啊?比如这样一个数组,</p>
<p><img src="http://img.baidu.com/img/iknow/icn_point.gif"> 悬赏分:5 -</p>
<p>解决时间:2010-11-1 12:24</p>
<p>const unsigned cher diaplay[]={..}; 用CONST来修饰这样一个数组它的作用是什么啊?</p>
<p>跪求好心人帮帮忙了。本人感激不尽!</p>
<p>提问者: 815696649 - 二级</p>
<p>最佳答案</p>
<p>应该深刻理解const的用法</p>
<p>话说define常量不可变,</p>
<p>#define NUM_BUF 100之后,NUM_BUF是100它是常量</p>
<p>那么const与常量有什么区别吗?</p>
<p>define常量就是任何时刻他都是常量,不不能改变</p>
<p>而const说明的是变量,表示不可改变值的变量</p>
<p>理解上面的话得明白p还是一个变量,分配存储空间,不管他能不能变</p>
<p>例如:</p>
<p>char const * p=&c;</p>
<p>用p来访问c的存储空间,可以读数据,不能写数据到c的存储空间</p>
<p>也可以再把P指向m,然后读m的数据,不能写数据到m的存储空间</p>
<p>但是用c来访问c的存储空间就跟p没有关系了,用c可以读数据可以写数据</p>
<p>因为c没有被const</p>
<p>用const的好处就是告诉阅读者和程序编译器这里处理数据时候,只是读取,不要改变(别人改变数据的值这里管不着)</p>
<p>所以</p>
<p>const unsigned cher diaplay[]={..};</p>
<p>对diaplay读取数据可以,写数据编译就会报错,因为他的值不可以改变</p>
<p>起到保护作用</p>
<p>要对向diaplay里面的写数据,还得由别的非const指针变量来完成</p>
<p>再比如</p>
<p>int f_mmax(const char * sp, char * p);</p>
<p>阅读者一看函数原型说明,就知道sp是读数据,p是操作数据</p>
<p>如果函数里面不小心用sp来读数据,就会报错,起保护作用</p>
<p>一个优秀的程序员就应该多用const</p>
<p>不知道我解释的是否通俗易懂</p>
<p>0</p>
<p>回答者:</p>
<p><img src="http://www.baidu.com/search/zhidao/zhuti-adinba2/icon_nangua.jpg"></p>
<p>lovemezhoupeng - 四级 2010-10-31 23:56</p>
<p>我来评论>></p>
<p>提问者对于答案的评价:</p>
<p>非常感谢你提供的帮助!</p>
|
|