c - 在 C 中,如何在没有指针的情况下更改局部范围变量?
问题描述
ncurses 库具有无需任何指针即可更改局部范围变量的函数。例如:
int x, y;
getyx(stdscr, y, x); //to get the current position of the cursor
这是怎么发生的?
解决方案
(忽略该void
手册页上非常令人困惑的返回类型;下面的散文告诉我们真相!)
笔记
所有这些接口都是宏。在变量and
&
之前不需要一个“ ” 。y
x
它没有引入或使用新的范围,因此可以直接“访问”x
它们y
。
作为一个类比,考虑以下如何在没有 a 的情况下工作&
:
#define doubleIt(x) x *= 2
int main()
{
int x = 1;
doubleIt(x);
}
推荐阅读
- html - 与溢出内容高度相同的叠加层
- android - 无法使用 adb 安装 Android Test Orchestrator
- android - Android ARGB_8888 转 RGB
- linux - Jenkins Slave - 远程可执行 RWX 应该可以完全访问指定的工作目录
- javascript - 在打字稿中使用自动绑定装饰器?
- phpstorm - 如何找到比 X 行更长的所有函数?
- c# - 如何使用 Wix# 将构建文件夹的所有内容添加到安装中?
- ios - 在 iOS 设备上拖动后抬起手指时,如何修复 GestureDetector.onScaleUpdate 中的偏移偏移?
- laravel - Laravel - {"exception":"[object] (InvalidArgumentException(code: 0): Driver [bugsnag] is not supported
- python - 当我使用 Process.Start(*vscode.exe-path*, *file path*) 打开文件时,文件为空