c - 如何编写一个宏来访问 C 中内存中的数据?

标签 c macros memory-address c-preprocessor

上周我接受了采访。我被要求编写一个宏来读取内存位置(比如 0x2000)。 我在正常编程中写了代码,但是我不会写宏。
请帮我弄清楚如何为下面的代码编写宏:

char *address = (char*)0x2000; // address is a pointer to address 3000 char val

*address = 36; // write 36 to 8 bit location at address

val = *address; // read 8 bit value from address

最佳答案

是这样的吗?

#define READ_CHAR_AT(address) *((char *) (address))

关于c - 如何编写一个宏来访问 C 中内存中的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10782639/

相关文章:

c++ - 如何在同一解决方案下为多个项目声明公共(public)#define?

c++ - 使用 C++ 将 XMacro 结构打印到控制台

特定内存地址上的内容与 gdb 中的预期不同

c - 如何检查存储在地址中的各个字节的情况?

c - malloc 导致 int 改变值

c++ - 如何更改编译单元的版本?

c - 如何在 C 中解析链接的宏?

c - 如何在 32 位地址空间内分配缓冲区?

c - stdlib.h文件的system()函数在linux中是如何实现的?

c - 如何设置Win32窗口非客户区的大小(native)