2012-08-06 55 views
1

我是新來的C,與代碼混淆了我:爲什麼類型標識符後跟函數調用?

pid_t getpid(void) 

如果接下來的類型標識符pid_t是一個變量(這是一個變量聲明),而是它是一個函數調用getpid(),我不不知道爲什麼使用這個函數調用。

回答

2

你說得對,pid_t是一種標識,但它不是一個變量。 pid_t是函數getpid()的返回類型。

C中的每個函數都有返回類型。函數聲明如下:
returntype functionName(arguments)

例如,int main(int argc, const char * argv[])返回int並有兩個參數。

+0

它是有道理的,這是否只是表示僅用於文檔使用的表達式的返回值?像在php函數文件中一樣,'int time(void)',但是在實際的代碼中,我們不使用返回類型標識符, – mko 2012-08-06 02:13:53

+0

是否使用返回值取決於你的程序。但它不僅僅是文檔的使用 - 它意味着函數*將返回可以捕獲的那種類型的東西。例如,如果您在PHP中編寫了'$ currentTime = time();',則使用返回值。 – FeifanZ 2012-08-06 02:22:59

+0

聲明中的參數和返回類型告訴編譯器如何自動轉換參數和值,並在它們不兼容時發出警告。 – Barmar 2012-08-06 02:38:01

1
pid_t getpid(void) 

這意味着命名getpid不帶任何參數(如參數列表中只包含void)功能,並返回pid_t類型的值(所以你與類型說明符正確的)。

任何關於C的基本書籍/教程都會給你這些信息,我建議你自己去解決一些基本問題。

這太問題可能會有所幫助:The Definitive C Book Guide and List

+0

感謝您的快速回答,我現在正在研究基礎知識,請問您會推薦c書嗎? – mko 2012-08-06 02:07:27

+0

@yozloy經典的C書(儘管它很舊)是[K&R的「小白書」](http://en.wikipedia.org/wiki/The_C_Programming_Language) - 另見[this](http:// en.wikipedia.org/wiki/The_C_Programming_Language)。我沒有看到任何最新的C文本,所以我不能推薦任何具體的內容,但幾乎其中任何內容都會涵蓋基本主題。順便說一下,我也只是看到了這本書的一些PDF版本在浮動,所以你可以這樣做:) ..訪問你當地的公共/大學圖書館也可以幫助你,你可以瀏覽書籍找到一個你喜歡。 – Levon 2012-08-06 02:10:18

+0

非常感謝我現在應該開始閱讀 – mko 2012-08-06 02:40:44

相關問題