c++ - 如何在 macOS 的旧扩展 clang 和 gcc 编译器中初始化数组和向量?
问题描述
我有一个 C++ 代码。它适用于 Windows、Ubuntu 和 Fedora。现在我想为 macOS 编译它。我遇到了一些错误,例如
error: expected expression
error: variable-sized object may not be initialized
我有很多像
int A[n][2] = {{2, 5},{2, 6},{3, 4},{3, 7},{4, 3},{5, 2},{6, 2},{7, 3}};
int B[n][2] = {{8, 15},{8, 16},{9, 14},{9, 17},{10, 13},{10, 14},{10, 17},{11, 12},{11, 15},{11, 16},{12, 11},{13, 10},{14, 9},{14, 10},{15, 8},{15, 11},{16, 8},{16, 11},{17, 9},{17, 10}};
我搜索它是因为 macOS 中旧安装的 clang 和 gcc 扩展(我使用的是 Mojave 10.14.0)
我不知道我能做些什么来解决这个问题。
解决方案
您可以像这样定义这些:
int A[][2] = {{2, 5},{2, 6},{3, 4},{3, 7},{4, 3},{5, 2},{6, 2},{7, 3}};
int B[][2] = {{8, 15},{8, 16},{9, 14},{9, 17},{10, 13},{10, 14},{10, 17},{11, 12},{11, 15},{11, 16},{12, 11},{13, 10},{14, 9},{14, 10},{15, 8},{15, 11},{16, 8},{16, 11},{17, 9},{17, 10}};
clang
又何乐而不为。
如果您指定n
,则需要确保初始化列表可以适合定义的结构。
推荐阅读
- shell - 如何在提示之前传递一个值来读取输入?
- java - 多态对象的自定义反序列化
- python - 使用循环更新嵌套字典中的列表值
- python - 在 Python 中引发异常时,我可以更改“最近调用”堆栈吗?
- spring-boot - GemFire 缓存在一天中的特定时间到期或驱逐
- azure - 没有获得要传递的参数以及在 Azure 门户上找到 StorageCredentials 的位置
- c++ - 避免使用固定大小数组模板的 C++ 设计模式
- python - 如何修复由于在使用 pyinstaller 转换为 .exe 期间从 URL 读取图像而发生的“JSONDecodeError”
- java - 将数据写入 excel(CSV) 文件
- python - 如何使用 pytesseract 从小册子图像中提取文本