这似乎有效(无论如何编译器都不会抱怨):
float adsr[4] = {0,1.0/PULSE_SPEED, 0,1};
[sequence setBaseADSR:adsr];
但我想让它更简洁并做到这一点:
[sequence setBaseADSR:{0,1.0/PULSE_SPEED, 0,1}];
我该怎么办?在javascript中,我会在括号中调用“数组文字”。不确定C语言是否具有相同的概念或术语。
答案 0 :(得分:11)
如果您的编译器支持C99复合文字语法,则可能。
[sequence setBaseADRS:(float [4]){0,1.0/PULSE_SPEED,0,1}];
答案 1 :(得分:2)
第二种方法不起作用,因为编译器不知道数组元素是哪种类型。但是,这样或类似的东西应该有效:
[sequence setBaseADSR:(float adsr[4] = {0,1.0/PULSE_SPEED, 0,1})];
作为声明返回表达式中最左边的元素(现在不能测试它)