c語言答案查詢軟件 為什么學(xué)了一學(xué)期C語言,看其他書籍會(huì)看到許多不曾見過的函數(shù)?
為什么學(xué)了一學(xué)期C語言,看其他書籍會(huì)看到許多不曾見過的函數(shù)?你好,我是比特幣的二哥,一個(gè)可以投資的程序猿。根據(jù)你的問題,我猜你應(yīng)該是大學(xué)一學(xué)期,老師教C語言的。1. 如果你是初學(xué)者,大學(xué)老師只教你C語
為什么學(xué)了一學(xué)期C語言,看其他書籍會(huì)看到許多不曾見過的函數(shù)?
你好,我是比特幣的二哥,一個(gè)可以投資的程序猿。
根據(jù)你的問題,我猜你應(yīng)該是大學(xué)一學(xué)期,老師教C語言的。
1. 如果你是初學(xué)者,大學(xué)老師只教你C語言的基本邏輯,如數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)類型、If、for、while等常用用法,讓你了解C語言在計(jì)算機(jī)上的工作原理。只要教你基本的概念和用法,讓你了解C語言應(yīng)該如何使用,了解這個(gè)概念的含義。當(dāng)一個(gè)大師引入時(shí),他的實(shí)踐取決于他自己。接下來深入了解的工作需要自己去做。
2. 一般來說,我們使用visualstudio環(huán)境在windows上學(xué)習(xí)和編譯c語言,但它只在windows上學(xué)習(xí)。雖然C語言是一種跨平臺(tái)語言,但它與Linux和其他操作系統(tǒng)上的一些函數(shù)以及一些系統(tǒng)頭文件不同。
3. 你不需要了解所有的函數(shù)。當(dāng)你需要使用它的時(shí)候,百度會(huì)用到這個(gè)功能,還有一些例子。您將在自己的項(xiàng)目中基本上使用這個(gè)函數(shù)。而且C語言中有很多庫(kù)函數(shù),不是每個(gè)人都能清楚地記住它們。
既然C語言函數(shù)的局部變量會(huì)被釋放,那為什么函數(shù)還可以把它return返回呢?
看了下面兄弟的回信,我們只能說他們一半是對(duì)的。
真正的原因是abi(應(yīng)用程序二進(jìn)制接口)。
ABI定義了與系統(tǒng)交互的細(xì)節(jié),如數(shù)據(jù)類型、大小和對(duì)齊方式;調(diào)用約定(控制函數(shù)的參數(shù)傳遞方向、可變長(zhǎng)度處理、堆棧清理體以及如何接受返回值等);系統(tǒng)調(diào)用的編碼以及應(yīng)用程序如何對(duì)操作系統(tǒng)進(jìn)行系統(tǒng)調(diào)用系統(tǒng);以及采用完整ABI操作系統(tǒng)基本格式、程序庫(kù)等的第二代對(duì)象文件。完整的ABI,如英特爾二進(jìn)制兼容標(biāo)準(zhǔn)(IBCs),允許支持它的操作系統(tǒng)上的程序在支持此ABI的其他操作系統(tǒng)上運(yùn)行,而無需修改。
其他ABI標(biāo)準(zhǔn)化細(xì)節(jié)包括C名稱修改和同一平臺(tái)上編譯器之間的調(diào)用約定,但不包括跨平臺(tái)兼容性。
至于下面兄弟提到的eax save返回值,這只是X86的ABI規(guī)范。在其他CPU架構(gòu)平臺(tái)(如PowerPC)中,實(shí)現(xiàn)是不同的!--在PowerPC中,返回值存儲(chǔ)在R3寄存器中