gpt4 book ai didi

C语言 : implicit pointer dereferencing

转载 作者:太空宇宙 更新时间:2023-11-04 02:37:05 25 4
gpt4 key购买 nike

在 C 中,是否可以为取消引用的指针定义别名/快捷方式?

即假设定义如下:

void * ptr_to_my_variable = 0x2ff00000;

是否可以定义一个对应于 *ptr_to_my_variablemy_variable 符号,这样:

*ptr_to_my_variable = 321;
my_variable = 123;
if (my_variable == *ptr_to_my_variable) printf "aliasing/shortcut works";

我能想到的唯一解决办法是:

#define my_variable *my_variable
int my_variable = (int *) 0x2ff00000;

my_variable = 123;

但这分明是自找麻烦……

最佳答案

不,没有任何技巧可以让您隐式取消引用指针。

但是,您在编辑中提到的预处理器技巧可让您隐藏显式取消引用,使其看起来隐含:

#define my_alias (*my_var_ptr)

但是请注意,您应该在表达式两边加上括号,这样可以避免您在编写时遇到麻烦

my_alias++;

关于C语言 : implicit pointer dereferencing,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35963468/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com