我对 linux 上 g++ 的这个错误有疑问:
srcs/../incs/file.hpp:21:27: error: taking address of temporary array
# define KEY_ESC_ (char[]){27, 0, 0, 0, 0, 0, 0}
^~~~~~~~~~~~~~~~~~~~~~
srcs/main.cpp:91:16: note: in expansion of macro 'KEY_ESC_'
如您所见,这是在定义中。我不明白为什么 g++ 说获取临时数组的地址
它比临时的更全局化......
这个值就是读出的key escape
任何方式...
我该如何解决?
此代码适用于 osx,但我需要在 linux 上进行粗略编译 ...
谢谢
最佳答案
如果您使用 define 语句,您代码中所有 KEY_ESC_
的实例都将被替换为 (char[]) {27, 0, 0, 0, 0, 0, 0},
这将在您的代码中成为一个临时变量。
关于c++ - C++中的定义和数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49716990/