我对文字数组的定义可能是错误的。我将以下内容称为:
{0x00, 0x01, 0x03}
我有一个接受数组的函数,如下所示:
void mote(char arry[]){}
当我调用此函数时,我希望能够执行以下操作:
mote({0x00, 0x01, 0x03})
但是我的编译器(C30)抱怨以下错误:
error: syntax error before '{' token
我也尝试使用这些括号 -> [ ] 进行上述操作,但我仍然遇到相同的错误。
我的问题
1)是否可以将文字数组传递给函数?
2)如果是,怎么做?
先谢谢大家了
此语法称为数组初始值设定项。因此,只有在定义数组时才能使用它。
C11 (n1570),第 6.7.9 节初始化
initializer: assignment-expression { initializer-list } { initializer-list , }
但是,在 C99 中,可以使用 复合文字:
mote((char[]){0x00, 0x01, 0x03});
如果不支持C99,请尝试这个:
char cp[] = {0x01, 0x02, 0x03};
mote (cp);