define的复杂用法

来源:百度知道 编辑:UC知道 时间:2024/06/20 02:30:28
#define BUFFER(x,y) *(pBuffer + y * cxBuffer + x)
这里到底是什么意思

这是带参数的宏,,
编译是替换源码中相应的代码,,
说白了就是一种替换
把BUFFER(x,y)
替换成:
*(pBuffer + y * cxBuffer + x)

代码里凡是出现BUFFER(x,y)的地方,就替换成*(pBuffer + y*cxBuffer+y)
这里x,y可以是任何合法的东西,就是单纯的代码替换
譬如BUFFER(32,sizeof(int))会被替换成
*(pBuffer+sizeof(int)*cxBUffer+sizeof(int))