2015-02-19 3 views
-1

Я работаю в Code Composer Studio версии: 6.0.1.00040 с картой LCDK C6748.initiallizing float array C

, но я думаю, что это общий вопрос C.

У меня есть глобальный массив с плавающей точкой, initiallized так:

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

из какой-то причины, я заметил, что когда я поставил точку останова массив полон Нэно. Неправильная инициализация? или я должен искать что-то еще?

Я установил BP внутри main(), массив инициализирован до main(), , возможно, я что-то неправильно понимаю, но когда я попадаю в main(), разве это не потому, что глобальные переменные initiallized?

+0

Учитывая ответ на аналогичный вопрос к вашим, http://e2e.ti.com/support/development_tools/code_composer_studio/f/81/ t/3627, Code Composer Studio не является компилятором C. В стандарте C ясно о влиянии 'float prn_buff [BUFF_NOISE_SIZE] = {0};' (для глобального массива вам даже не нужен '= {0};'). Поскольку Code Composer Studio не является компилятором C, вы не должны запрашивать здесь тег C, где вы получите только ответы, такие как Lundin, но ищите ответы в документации Code Composer Studio или на форумах, посвященных этому. –

ответ

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                                           
(...) 
1

Является ли инициализация неправильной? или я должен искать что-то еще?

Инициализация в порядке, она устанавливает все элементы массива в 0.0f. Проблема, скорее всего, в другом месте вашего кода. Или, возможно, вы устанавливаете точку останова слишком рано, прежде чем инициализация массива будет выполнена.