【发布时间】:2013-05-22 02:39:13
【问题描述】:
已经有很多关于宏重载的问题/答案。但是,我找不到将其应用于我的特定问题的方法。
我想在 C 中方便地为我的 3D 图像赋值。 现在,我执行以下操作:
#define IMGET(im,y,x,c) im.data[(y)+im.height*((x)+im.width*(c))]
#define IMSET(im,y,x,c,v) IMGET(im,y,x,c)=v
效果很好。
但是,当我有只有 2D 的黑白图像时,我也想使用它。 类似的东西:
#define IMGET(im,y,x,c) im.data[(y)+im.height*((x)+im.width*(c))] //3D case
#define IMSET(im,y,x,c,v) IMGET(im,y,x,c)=v //3D case
#define IMGET(im,y,x) im.data[(y)+im.height*(x)] //2D case
#define IMSET(im,y,x,v) IMGET(im,y,x)=v //2D case
有可能吗?
【问题讨论】: