Objective c 目标C——将数组文本传递给方法
这似乎有效(无论如何,编译器不会抱怨): 但我想让它更简洁,并做到这一点:Objective c 目标C——将数组文本传递给方法,objective-c,Objective C,这似乎有效(无论如何,编译器不会抱怨): 但我想让它更简洁,并做到这一点: [sequence setBaseADSR:{0,1.0/PULSE_SPEED, 0,1}]; 我该怎么做?在javascript中,我将括号中的内容称为“数组文字”。但不确定C语言是否有相同的概念或术语 第二种方法不起作用,因为编译器不知道数组元素是哪种类型。但是,这样或类似的方式应该可以: [sequence setBaseADSR:(float adsr[4] = {0,1.0/PULSE_SPEED, 0,1
[sequence setBaseADSR:{0,1.0/PULSE_SPEED, 0,1}];
我该怎么做?在javascript中,我将括号中的内容称为“数组文字”。但不确定C语言是否有相同的概念或术语 第二种方法不起作用,因为编译器不知道数组元素是哪种类型。但是,这样或类似的方式应该可以:
[sequence setBaseADSR:(float adsr[4] = {0,1.0/PULSE_SPEED, 0,1})];
由于声明返回表达式中最左边的元素(但现在无法测试)如果编译器支持C99复合文字语法,则有可能
[sequence setBaseADRS:(float [4]){0,1.0/PULSE_SPEED,0,1}];
的确但这和我们在循环中初始化计数器的方法是一样的,所以对于一次性的目的来说,这完全是不必要的。请参阅Cirno de Bergerac的答案。您可以发布一个链接到Cimo的答案吗?如果你能控制这个API,我强烈建议不要像那样传递原始数组。C数组杂乱无章。@Chuck你有什么建议吗?我最喜欢的功能之一。我经常为
CGPoint
,CGRect
,UIEdgeInsets
,等等:(CGRect){{{x,y],{w,h}
[sequence setBaseADRS:(float [4]){0,1.0/PULSE_SPEED,0,1}];