gpt4 book ai didi

c++ - 将数组的大小设置为从另一个常量除法得出的 const 的值

转载 作者:太空狗 更新时间:2023-10-29 23:33:02 25 4
gpt4 key购买 nike

我有这两个假设的常量:

int const MATRIX_SIZE = 1000;

int const LONGEST_LR_LINK = (int)floor(MATRIX_SIZE/2);

我正在尝试声明一个数组:

int lrLinkArray [LONGEST_LR_LINK];

我得到错误:

error: array bound is not an integer constant before ‘]’ token

为 LONGEST_LR_LINK 手动插入 MATRIX_SIZE 的一半并没有那么麻烦,但我很好奇解决这个问题的方法是什么。对 const 进行任何类型的计算是不好的做法吗?

最佳答案

C++ 中的整数除法会自动向下舍入。所以如果你有定义

int const LONGEST_LR_LINK = MATRIX_SIZE/2;

那么 LONGEST_LR_LINK 确实是一个常量表达式,并且

int lrLinkArray [LONGEST_LR_LINK];

应该没问题。此外,无论如何,floor(MATRIX_SIZE/2) 并不像您想象的那样;您必须编写 floor(MATRIX_SIZE/2.0) 才能强制执行非整数除法。

关于c++ - 将数组的大小设置为从另一个常量除法得出的 const 的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24560027/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com