スタック要素型stack_entryの定義とともに機能のプロトタイプから成るアレイベースなぜstack.cをstack.cに含める必要がありますか?
#include "stack.h"
void creat_stack(Stack *s) {
s->Top = 0;
}
int isFull(Stack s) {
return (s.Top == Max ? 1 : 0);
}
int isEmpty(Stack s) {
return (s.Top == Max ? 1 : 0);
}
void push(stack_entry e, Stack *s) {
if (!isFull(*s))
s->entry[s->Top++] = e;
else
printf("Error : Stack Overflow\n");
}
void pop(stack_entry *e,Stack *s) {
if(!isEmpty(*s))
*e = s->entry[s->Top--];
else
printf("Error : Stack Underflow\n");
}
ヘッダファイルstack.hの実装レベル。
#pragma once
#include <stdio.h>
#define Max 10
typedef char stack_entry;
typedef struct Stack{
int Top;
stack_entry entry[Max];
}Stack;
void creat_stack(Stack *s);
int isFull(Stack s);
int isEmpty(Stack s);
void push(stack_entry e,Stack *s);
void pop(stack_entry *e, Stack *s);
私の質問なぜ私は "stack.c"ファイルに "stack.c"ファイルを含める必要がありますか?
'typedef'、' define'、 'struct'の定義については、 – user975989
関数の宣言とその実装が一致することを確認します。 –
インクルードなしでコンパイルしようとすると、コンパイラがあなたに伝えます:) –