Несколько человек прокомментировали мой C-код здесь, сказав, что я должен использовать константы в качестве счетчиков циклов, а не писать их жестко. Я согласен с ними, так как это моя практика при написании кода Java, но у меня возникают ошибки времени компиляции, когда я пытаюсь использовать константы в объявлениях массивов и условных циклах.
Чтобы объявить константу в C, синтаксис будет #define NAME value
.
В моем коде у меня есть две константы, BUFFER
- это буфер чтения файла, а PACKED
- размер выходного массива.
Я использую BUFFER
для инициализации char inputBuffer[BUFFER];
в качестве глобальной переменной, которая работает, но когда я пытаюсь использовать PACKED
#define PACKED 7; // this line is in the header of file, just below preprocessors
int packedCount;
char inputPack[PACKED]; //compression storage
for (packedCount=0; packedCount<= PACKED; packedCount++){
Я получаю error: expected ‘]’ before ‘;’ token
в char inputPack[PACKED]
И
error: expected expression before ‘;’ token
в строке инициализации цикла. Обе ошибки исчезают, когда я заменяю PACKED
на 7.