2013-10-07 9 views
0

Я новичок в программировании на языке C, и мне нужен файл заголовка C, который управляет двумя стеками. Должны быть только два метода: push и pop (но они не относятся к одному стеку).«частная» переменная в файле заголовка C

  • толчка будет передавать данные на первый стек, который затем получает хлопнутый и обрабатывается внутри функциональностью заголовка и выход проталкивается (когда) на второй ярус

  • поп получит Вас выходные данные из второго стека, если есть какой-либо

проблема заключается в том, что я не знаю, как сделать второй стек для метода поп, если не может быть каким-либо переменными инициализирована в заголовочном файле. Кажется настолько неправильным инициализировать стек в файле .c.

+1

Почему «Кажется, неправильно инициализировать стек в файле .c»? – doctorlove

+0

Что означает * «внутренне обработано ** функцией заголовка **» *? Файлы заголовков не должны иметь никаких функций. – user694733

+0

Я научился сначала кодировать java и объявлять те вещи в c-файлах, как мне кажется, только писать «общедоступные» java-методы независимо от того, что. Возможно, это потому, что я не вижу всех преимуществ и возможностей, которые приходят с C, но :) – asso

ответ

3

Файл заголовка может содержать только прототипы для функций push и pop. Затем все данные (переменные и т. Д.) Объявляются, определяются и инициализируются в исходном файле, где определены функции push и pop.

+0

О, я вижу. Похоже, у меня было неправильное представление о различии между .c и .h файлами. Спасибо. – asso

2

Вам не нужно открывать стеки в вашем файле заголовка вообще. Просто реализуйте их полностью в своем файле реализации C; заголовок может быть столь же просто, как:

void push(int value); 
int pop(); 
int empty(); // returns 0 if pop() is valid to call now 
void process(); // do some work, moves things from the input stack to the output 

В файле реализации, просто инициализировать стек указателей на NULL по умолчанию и настроить стеки в первый раз вызовы пользователя нажать().

Смежные вопросы