define的复杂用法

#define BUFFER(x,y) *(pBuffer + y * cxBuffer + x)这里到底是什么意思
2025-03-23 10:37:18
推荐回答(2个)
回答1:

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

回答2:

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