一个很奇怪的语法问题

mz454619501 2016-05-11 05:45:00
*srccbuf作为一个形参传进来,
对于如下的这么一句话(*srcbuf++ << 8)
总是提示,warning: operation on 'srcbuf' may be undefined
如果我拆成这样,就没有 问题
((*srcbuf) << 8);
srcbuf++;


why?

...全文
102 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
mz454619501 2016-05-12
  • 打赏
  • 举报
回复
引用 1 楼 brookmill 的回复:
如果是这种简单的 a = (*srcbuf++ << 8); 那就不应该有这个问题。 我怀疑同一行里面不止一次用到了srcbuf,比如 a = (*srcbuf++ << 8) + *srcbuf; 如果是这种情况,那么第二个srcbuf的值有可能会是原来的值,也有可能会是原来的值加一,不同的编译器可能会有不同的结果。 所以不要这么写代码。
没错,的确是这个问题,多谢多谢~
brookmill 2016-05-12
  • 打赏
  • 举报
回复
如果是这种简单的 a = (*srcbuf++ << 8); 那就不应该有这个问题。 我怀疑同一行里面不止一次用到了srcbuf,比如 a = (*srcbuf++ << 8) + *srcbuf; 如果是这种情况,那么第二个srcbuf的值有可能会是原来的值,也有可能会是原来的值加一,不同的编译器可能会有不同的结果。 所以不要这么写代码。

23,120

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧