Entendi. Se eu fizer minha interface, devo enviá-la junta aos outros dois arquivos, né?
Certo.
Outra coisa, se eu fizr uma interface stack.c, como ficaria o arquivo make
CC = gcc
CFLAGS = -Wall -ansi -O2 -pedantic -Wno-unused-result
RM = rm
#------------------------------------------------
# chama o linker
pitao: main.o eval.o lexer.o stack.o util.o
$(CC) main.o eval.o lexer.o stack.o util.o -o pitao -lm
main.o: main.c eval.h lexer.h util.h classes.h
$(CC) $(CFLAGS) -c main.c
eval.o: eval.c eval.h util.h classes.h stack.h
$(CC) $(CFLAGS) -c eval.c
lexer.o: lexer.c lexer.h util.h classes.h
$(CC) $(CFLAGS) -c lexer.c
util.o: util.c util.h classes.h
$(CC) $(CFLAGS) -c util.c
stack.o: stack.c stack.h util.h
$(CC) $(CFLAGS) -c stack.c
Edit: sem problemas escrever as funções de empilhar/desempilhar dentro da própria eval.c (se é que é possivel)?
Sem problemas.