使用复合文字初始化数组中的所有元素

Val*_*adu 8 c arrays gcc c99 gcc4

float myArray[myArraySize] = {1};
Run Code Online (Sandbox Code Playgroud)

在上面的表达式中,只有第一个元素是init和1.如何使用复合文字(不是memset)初始化所有带元素的元素?

我在unix上使用GCC 4.2进行编译.

Bee*_*San 6

这个

float myArray[100] = {[0 ... 99] = 1.0};
Run Code Online (Sandbox Code Playgroud)

你是怎么做到的.

请参阅GCC文档中的指定初始化程序,其中说:

要将一系列元素初始化为相同的值,请写入"[first ... last] = value".


Mic*_*eyn 5

不,只有第一个元素会被初始化为1.0.其余的将被初始化,但是按照C标准为0.0.有关更多示例,请查看C faq.