博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
宏定义的教训
阅读量:4599 次
发布时间:2019-06-09

本文共 397 字,大约阅读时间需要 1 分钟。

#define DATA_SHIFT 2

#define SPEED_BIT 2

#define DATA_BEGIN  2+SPEED_BIT

#define DATA_AMOUNT 5+720+SPEED_BIT

for(i=DATA_BEGIN;i<DATA_AMOUNT-3;i+=DATA_SHIFT)

{

RangingData[(i-DATA_BEGIN)/DATA_SHIFT]>>8;

....

}

设想RangingData会从0开始变化到359,实际是从4变化到363.

推理时把DATA_BEGIN等效成4,实际不是,实际是2+2.

在进行运算时 i-DATA_BEGIN不是等于i-4,而是i-2+2,所以发生了奇怪的错误。

宏定义只是替换名称,算是深刻体会到了。

转载于:https://www.cnblogs.com/WeyneChen/p/5473357.html

你可能感兴趣的文章
ffmpeg常用参数一览表
查看>>
Java实现文件拷贝的4种方法.
查看>>
一元四次方程求根公式
查看>>
private,protected,public和internal的区别
查看>>
LA3029 City Game
查看>>
第一次作业
查看>>
Kinect控制PowerPoint播放
查看>>
Unix Notes.
查看>>
Java基础复习3
查看>>
iCOM组件(iComponent,应用或学习组件)
查看>>
css实现页面文字不换行、自动换行、强制换行
查看>>
web前端切图处理
查看>>
win10 系统右键菜单不显示文字(只有小图标)修复方法
查看>>
PAT A1009 Product of Polynomials (25 分)——浮点,结构体数组
查看>>
Xen虚拟机克隆实战
查看>>
js文件三斜杠注释///reference path用途
查看>>
Ruby(或cmd中)输入命令行编译sass
查看>>
ThreadPoolExecutor线程池
查看>>
开源许可证的选择
查看>>
ZJOI2019二试游记
查看>>