首页 > 解决方案 > 在 C 中,如何在没有指针的情况下更改局部范围变量?

问题描述

ncurses 库具有无需任何指针即可更改局部范围变量的函数。例如:

int x, y;
getyx(stdscr, y, x);    //to get the current position of the cursor

这是怎么发生的?

标签: c

解决方案


getyx不是函数,而是宏。

(忽略该void手册页上非常令人困惑的返回类型;下面的散文告诉我们真相!)

笔记

所有这些接口都是宏。在变量and&之前不需要一个“ ” 。yx

它没有引入或使用新的范围,因此可以直接“访问”x它们y

作为一个类比,考虑以下如何在没有 a 的情况下工作&

#define doubleIt(x) x *= 2

int main()
{
   int x = 1;
   doubleIt(x);
}

推荐阅读