2014-04-07 21 views
1

例如,在一個程序中,我有一個由其他函數內部使用的函數。但我想限制在main()中使用這個幫助功能。像C++中的private一樣。如何通過宏限制我的函數的使用,就像在C++中使用私有函數一樣?

+0

當然你的意思是類的方法,但要清楚的事情值得一提的是,你不能在C++中使用免費的私有函數:爲了隱藏它們,你不要在公開的頭文件中聲明它,或者使它們成爲靜態的(C方式)或者把它們放在匿名的命名空間中(C++的方式)。 – Drop

+0

你對C只有答案感興趣嗎?我在問,因爲一些用戶決定C++標籤是多餘的。 – jrok

+1

有些人只是改變了標題和標籤,所以現在還不清楚什麼是首先被問到的。 ****是誰批准這樣的編輯? – Drop

回答

0

定義和使用它在一個單獨的編譯單元或#undef它在您的標題的結尾,如果你必須在那裏使用它。你確定你想要一個宏,你正在做什麼?

-3

那麼,你把這個函數作爲一些結構或類的私有成員,這樣你就可以單獨使用它和其他人。

+1

我不downvoter,但告訴你投票的原因,他特別要求語言'c'不C++ – EmptyData

7

你讓在C文件中的函數static(我假設是相同的C文件作爲具有main()的一個),並在你的頭忽略它。那麼它將不能從它自己的C文件之外被調用。

0

對於某些功能,您可以使用#if和#endif,並在頭文件中的特定條件下聲明它們。下面的例子可能會有幫助:

#if SPECIFIC_CONDITION 
void functionOne(); 
BOOL functionTwo(); 
int functionThree(); 
#endif 
void functionFour(); 

因此所有除functionFour(功能)將作爲私有,你可以調用前三名功能在特定條件下僅

相關問題