2013-10-07 66 views
0

我是C編程新手,我需要一個C頭文件,它管理兩個堆棧。應該只有兩種方法:push和pop(但它們不指向相同的堆棧)。C頭文件中的「private」變量

  • 壓棧將把數據到其上,然後被彈出和由標題的功能內部處理並輸出被推動(每當)到第二堆疊在第一堆疊

  • 彈出將獲得您的輸出數據從第二棧,如果有任何

的問題是,我不知道如何使可用於pop方法第二堆層,如果有可能不是在頭文件中初始化的變量。在.c文件中初始化堆棧似乎是錯誤的。

+1

爲什麼它「在.c文件中初始化堆棧似乎錯了」? – doctorlove

+0

*「由**標頭功能**內部處理」是什麼*「是什麼意思?標頭文件不應有任何功能。 – user694733

+0

我學會了使用java編寫代碼,並且在c文件中聲明這些東西在我看來似乎只是寫「public」java方法而已。也許這只是因爲我沒有看到C帶來的所有優點和可能性,但是:) – asso

回答

3

頭文件只能包含pushpop函數的原型。然後聲明,定義所有數據(變量等),並在定義pushpop函數的源文件中初始化。

+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,並設置堆棧中的用戶第一次調用push()。