Я писал тестовый код на C. По ошибке я вставил ;
после #define
, что дало мне ошибки. Почему точка с запятой не требуется для #define
s?
Более конкретно:
Способ 1: работает
const int MAX_STRING = 256;
int main(void) {
char buffer[MAX_STRING];
}
Способ 2: не работает - ошибка компиляции.
#define MAX_STRING 256;
int main(void) {
char buffer[MAX_STRING];
}
В чем причина различного поведения этих кодов? Оба MAX_STRING не являются константами?