我有一个 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程序员,我正在用头撞墙试图弄清楚这一点。
评论里真有答案。为了在这里形式化它,您使用取消引用运算符
*
,这就是您引用指针指向的值的方式。
int msgNumber
保存要传递的整数值,而不是整数的地址。
您需要做的是传递地址,这将使用指针运算符完成:
int msgNumber = 5555;
VSHRTMSE(&msgNumber); /*Ask for first or next msg from msg table entry */