Я написал тестовый код в C. По ошибке я вставил a ;
после #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 не константами?