任何人都可以帮助我这个宏吗?

mar*_*tin 2 c macros

任何人都可以详细解释下面的宏做什么?

#define write_XDATA(address,value) (((char *)0x010000) [address]=value)
Run Code Online (Sandbox Code Playgroud)

谢谢!

sha*_*oth 5

你用吧:

write_XDATA( Address, Value );
Run Code Online (Sandbox Code Playgroud)

它被扩展了:

((char*)0x010000)[Address]=Value;
Run Code Online (Sandbox Code Playgroud)

这相当于以下内容:

char* baseAddress = (char*)0x010000;
*(baseAddress + Address) = Value;
Run Code Online (Sandbox Code Playgroud)

所以基本上它写了一个存储在Value地址的字节0x010000 + Address.