const的使用

2019-07-21 06:05发布

//我想在有一个数组
const uint8_t abc[10][10];
const uint8_t 123[10][10];



//B函数
void B(const uint8_t **p)
{
    uint8_t tmp;
    tmp = p[9][9];
    p[9][9] = p[0][0];
    p[0][0] = tmp;
}
//A函数
void A(void)
{
     B(abc);
}
就是类似于这样的代码,在调用B函数的时候,就会有一个警告,说是类型强制转换了(const uint8_t [][]不能转化位 const uint8_t **)
那我就想问了,B函数定义的时候,参数类型怎么定义才能没有这个警告呢!


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
19条回答
正点原子
1楼-- · 2019-07-21 06:06
不能用const类型,基本常识啊
brave_dancing
2楼-- · 2019-07-21 08:56
正点原子 发表于 2019-1-4 17:15
不能用const类型,基本常识啊

你说的不能用const是说哪里不能用const啊,是说函数参数不能参数不能用const吗?
为什么不能用const啊?
brave_dancing
3楼-- · 2019-07-21 10:02
 精彩回答 2  元偷偷看……
d1z1y2
4楼-- · 2019-07-21 11:13
1、const 是常量,存在Flash中的,只能读取,不能写。函数B中对这个地址直接写了。
2、你所说的,字模的指针传到显示函数,应该是没问题的,你要检查一下代码。
3、uint8_t **p    这个你想表达什么意思?
mlike
5楼-- · 2019-07-21 16:58
const 是常量的意思,就是   1就是1,2就是2,  改不了,,,,用const定义的东西,定义后就改不了了,小白的理解
brave_dancing
6楼-- · 2019-07-21 18:18
d1z1y2 发表于 2019-1-5 22:14
1、const 是常量,存在Flash中的,只能读取,不能写。函数B中对这个地址直接写了。
2、你所说的,字模的指 ...

你所说的1和2我都理解了

一周热门 更多>