#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, но все равно получаю ошибку.