初始化float数组C.

时间:2015-02-19 15:08:03

标签: c arrays floating-point

我使用卡片LCDK C6748在Code Composer Studio版本:6.0.1.00040中工作。

但我认为这是一个普遍的C问题。

我有一个全局浮点数组,初始化如下:

float prn_buff[BUFF_NOISE_SIZE]={0};       // pseudo random noise
// I expected that the array will be full of zeros (appearantly it is not)

出于某种原因,我注意到,当我设置断点时,阵列充满了NaN。 初始化是错误的吗? 或者我应该寻找别的东西?

我在main()中设置BP,数组在main()之前初始化, 也许我误解了一些东西,但当我进入main()时,是不是在所有全局变量都已初始化之后呢?

2 个答案:

答案 0 :(得分:1)

  

初始化是错误的吗?或者我应该寻找别的东西?

初始化很好,它将数组的所有项都设置为0.0f。问题可能在您的代码中的其他地方。或者,在执行数组初始化之前,您可能过早地设置了断点。

答案 1 :(得分:0)

给定代码没有错。请参阅下面的代码示例

#include <stdio.h>

#define BUFF_NOISE_SIZE 10

float prn_buff[BUFF_NOISE_SIZE]={0}; // Global array of floats 

int main()
{

    int i;
    for(i=0;i<BUFF_NOISE_SIZE;i++){
        printf("%f \n",prn_buff[i]);
    }

    return 0;
}

输出:

0.000000                                                                                                                                                                        
0.000000                                                                                                                                                                        
(...)