gpt4 book ai didi

c - 在分配时丢弃 'const' 限定符

转载 作者:太空宇宙 更新时间:2023-11-04 05:36:53 27 4
gpt4 key购买 nike

我有以下代码-

int acb(const uint16 *MsgPtr) 
{

uint16 *p = (MsgPtr + 1);
printf("%d", *p);

}

我收到以下警告 - 在为 printf 上方的行赋值时丢弃了“const”限定符。如何解决?

最佳答案

acb 的参数是一个指向常量 uint16 的指针,您创建的指针不指向常量。这会丢弃 const 限定符。从传递给函数的参数中删除 const 或使 p 指向 const uint16

为什么会这样?您告诉编译器您保证不会更改 MsgPtr 指向的内容,但随后创建一个指针可以修改 MsgPtr 指向的内容 *(p - 1) = ...;

关于c - 在分配时丢弃 'const' 限定符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32689984/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com