Работа с .wav file ... * ptr_8 и * ptr_16 - указатели на массивы образцов.ошибка: ожидаемое выражение перед 'unsigned'
Я хочу сделать программу, чтобы объявить эти указатели в зависимости от данных заголовка (если 8 BitsPerSample ---> DECLARE * ptr_8 ...)
if (hdr.S1.BitsPerSample == 8) // Declaring array for samples. Depending
// on header's data (8 or 16 bits).
unsigned char *ptr_8;
else
if (hdr.S1.BitsPerSample == 16)
unsigned short *ptr_16;
Проблема в том, что он пишет:
error: expected expression before 'unsigned'
на обе линии (где должны быть объявлены *ptr_8
и *ptr_16
), хотя я не вижу причины такого поведения. Расскажите, пожалуйста, что не так.
UPDATE:
Как оказалось, декларация времени компиляции концепции (см принятый ответ ниже).
Переменные объявляются при компиляции, поэтому один раз он получает ресурсы машины, а затем (когда вы скомпилировали приложение) все они уже объявлены там. Это означает, что это был один из худших способов попытаться оптимизировать программу ...
Что делать, если вы замените 'hdr.S1.BitsPerSample == 8' на' true'? –
Он пишет: '' true 'uneclared (первое использование в функции) '. – yulian