我不完全知道为什么,这是行不通的作为静态数组大小的常量函数参数?
void foo(const int a=10){
const int b = 10;
int c[a];
int d[b];
}
我认为我的编译器说,一个是不变的 - 我甚至告诉它的默认值是10 :)。
为什么他大喊:
1>sum_floats_txt.cpp(105): error C2057: expected constant expression
1>sum_floats_txt.cpp(105): error C2466: cannot allocate an array of constant size 0
1>sum_floats_txt.cpp(105): error C2133: 'c' : unknown size
我知道它告诉我,但我不知道该怎么做我想做的事: - 功能与尺寸上外界不断可靠的内部静态数组 该函数计算某些内容并返回执行时间(在RTOS中执行)。
所以我想用main的不同参数调用这个函数。找出哪个参数执行最短。
静态数组的工作方式是否存在问题?它在编译时必须具有恒定的大小。所以对于不同的静态数组我必须定义更多的静态数组。
可能的解决方案是创建更多的功能或更多的静态数组与预定义的不同大小。并一个接一个地给他们打电话,但有成千上万个不同的尺寸。
我不想做非自动化迭代以获得最佳参数!在执行之前,可以将main的参数传递给函数吗?
VS2010 + RTX64 2013(应该不是问题) win7 谢谢!