#ifndef в c файле?

Можно ли поставить#ifndef в верхней части файла c? В основном мне нужно проверить, была ли определенная константа препроцессора объявлена при запуске программы, и моя программа изменится соответственно.

Мне нужно проверить, если-D DESCENDING_ORDER=1 добавляется в качестве аргумента (нене имеет значения, какое значение дано).

У меня есть этот код в верхней части моего основного файла с:

#ifndef DESCENDING_ORDER
int ascending = 1;
#else
int ascending = 0;
#endif

Работает при самостоятельной компиляции, но я получаю ошибки, когда пытаюсь скомпилировать с Makefile, что-то вроде "ожидаемый идентификатор перед 'INT» за .int ascending = 1

Благодарю.

РЕДАКТИРОВАТЬ - Добавлен код Makefile

CC=gcc
CFLAGS=-g -Wall
INC=-include
RES_OBS=res.o
LIBS=
all: res

res:    $(RES_OBS)

    $(CC) $(CFLAGS) -o res $(RES_OBS) $(LIBS) $(INC) res.h -D DESCENDING_ORDER=1

clean:
        rm -f *.o

clobber:
        make clean
        rm -f res

Вид угадал и добавил$(INC)....DESCENDING_ORDER=1 до конца команды, так чтоВозможно, поэтомуне работает. Команда I 'использую без makefile:

gcc res -include res.h -D DESCENDING_ORDER=1

РЕДАКТИРОВАТЬ 2 - немного поигрался с разными аргументами и обнаружил, что я получаю ту же ошибку, если удаляю-include res.h в команде. Все еще не знаете, как правильно ссылаться на файл заголовка в make-файле? Я'мы добавили#include "res.h" в моем файле res.c, но все равно получаю ошибку.

Ответы на вопрос(2)

Ваш ответ на вопрос