gpt4 book ai didi

vhdl - VHDL 中的指针取消引用

转载 作者:行者123 更新时间:2023-12-02 08:42:39 28 4
gpt4 key购买 nike

我一直无法理解如何在 VHDL 中取消引用指针。

我想到的是一个 C 代码,如:

  int a;
int* ptr_a;

a = 42;
ptr_a=&a;
*ptr_a=451;// how can I do this ?

我试图在 VHDL 中模仿这段代码:
ptr_test : process
type ptr_integer is access integer;
variable a : integer;
variable ptr_a : ptr_integer;
begin
a := 42;
ptr_a := new integer'(a);
report "ptr now points to a : ptr=" & str(ptr_a.all);
ptr_a.all := 451;
report "ptr modified : ptr=" & str(ptr_a.all);
report "a is NOT modified : a =" & str(a);
wait;
end process;

那么如何通过指针正确修改值呢?

最佳答案

你不能直接。访问类型并不“就像指针一样”——它们至少在某种程度上是不同类型的数据存储。

此行不会创建指向 a 的指针:

ptr_a     := new integer'(a);

它创建一个与 a 具有相同值的数据对象。并设置 ptr_a引用它。

如果您要创建另一个访问类型变量:
variable ptr_b : ptr_integer;

并将其设置为指向 ptr_a :
ptr_b := ptr_a;

然后更改为 ptr_b.all将反射(reflect)在 ptr_a.all .

关于vhdl - VHDL 中的指针取消引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15202066/

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