FILENAME_MAX
- это макрос, который определяется стандартной библиотекой * и поэтому уже используется для использования в качестве идентификатора. Когда вы пытаетесь использовать его в качестве идентификатора, он на самом деле заменяется во время предварительной обработки на некоторое число. Номер не является допустимым идентификатором, поэтому вы получаете ошибку. (Вот почему он говорит: «Я ожидал идентификатор, а не числовую константу».)
Переименуйте его в другое. (Или используйте std::string
, хотя кажется, что вы еще не совсем там.)
* Он определяется <cstdio>
. Хотя вы не включаете его напрямую, другие стандартные библиотечные заголовки могут включать любые другие стандартные заголовки по своему усмотрению.