Objective C - 将数组文字传递给方法

时间:2010-03-23 15:37:55

标签: objective-c

这似乎有效(无论如何编译器都不会抱怨):

float adsr[4] = {0,1.0/PULSE_SPEED, 0,1};
[sequence setBaseADSR:adsr];

但我想让它更简洁并做到这一点:

[sequence setBaseADSR:{0,1.0/PULSE_SPEED, 0,1}];

我该怎么办?在javascript中,我会在括号中调用“数组文字”。不确定C语言是否具有相同的概念或术语。

2 个答案:

答案 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})];

作为声明返回表达式中最左边的元素(现在不能测试它)