如何使用指针常量指向 ANSI C 中的特定内存地址(例如 0x0001a00 这样的地址)?
How can one use pointer constants to point to a specific memory address (e.g. an address like 0x0001a00) in ANSI C?
我正在为一个项目试验 C 编程中的指针,并希望获得一些指导,了解是否有其他方法可以将指针常量初始化为内存地址 0x0001a000。
以下是我的做法:
volatile int *firstAddress = (volatile int *)0x0001a000;
printf("First Memory address is: %p\n", firstAddress);
在 C 编程中是否有更短的方法来初始化上述内容?
这正是您初始化此类常量的方式,但结果非常具体实现。
如果给定的地址不是一个明确记录为有效的地址,您可能会调用 undefined behavior.
你也不能让它比这更简洁了。整数和指针之间的转换需要转换。
我正在为一个项目试验 C 编程中的指针,并希望获得一些指导,了解是否有其他方法可以将指针常量初始化为内存地址 0x0001a000。
以下是我的做法:
volatile int *firstAddress = (volatile int *)0x0001a000;
printf("First Memory address is: %p\n", firstAddress);
在 C 编程中是否有更短的方法来初始化上述内容?
这正是您初始化此类常量的方式,但结果非常具体实现。
如果给定的地址不是一个明确记录为有效的地址,您可能会调用 undefined behavior.
你也不能让它比这更简洁了。整数和指针之间的转换需要转换。