我想将c程序中的值的地址传递给外部汇编程序例程进行修改

问题描述 投票:0回答:1

我有一个 C 程序(不是 C++),它的值声明为

int msgNumber = 5555

我还有一个上述 C 程序调用的外部汇编程序例程,我想将 C 程序中 msgNumber 值的地址传递给它,以便汇编程序可以更新该值,然后返回到调用 C 程序

有人可以向我解释一下该怎么做吗?

我尝试过什么,

我试过这个:

int msgNumber = 5555;
        VSHRTMSE(*msgNumber);      /*Ask for first or next msg from msg table entry */

编译者不关心这一点

ERROR CCN3018 src/c/VSHXYS.c:1480  Operand of indirection operator must be a pointer expression.
CCN0793(I) Compilation failed for file src/c/VSHXYZ.c.  Object file not created.
FSUM8226 make: Error code 12

我是不是一个C程序员,我正在用头撞墙试图弄清楚这一点。

c pointers assembly external zos
1个回答
0
投票

评论里真有答案。为了在这里形式化它,您使用取消引用运算符

*
,这就是您引用指针指向的值的方式。

int msgNumber
保存要传递的整数值,而不是整数的地址。

您需要做的是传递地址,这将使用指针运算符完成:

  int msgNumber = 5555;
  VSHRTMSE(&msgNumber);      /*Ask for first or next msg from msg table entry */
© www.soinside.com 2019 - 2024. All rights reserved.