C99標準和C89標準的區別,C89,C99,C11等C語言標準是幹嗎的?

時間 2022-07-24 03:05:04

1樓:嚳驢

1、增加restrict指標

c99中增加了公適用於指標的restrict型別修飾符,它是初始訪問指標所指物件的惟一途徑,因此只

有藉助restrict指標表示式才能訪問物件。restrict指標指標主要用做函式變元,或者指向由malloc()函

數所分配的記憶體變數。restrict資料型別不改變程式的語義。

如果某個函式定義了兩個restrict指標變元,編譯程式就假定它們指向兩個不同的物件,memcpy()

函式就是restrict指標的一個典型應用示例。c89中memcpy()函式原型如下:

**:void *memcpy (void *s1, const void *s2, size_t size);如果s1和s2所指向的物件重疊,

其操作就是未定義的。memcpy()函式只能用於不重疊的物件。c99中memcpy()函式原型如下:

**:void *memcpy(void *restrict s1, const void *restrict s2,size_t size);通過使用restrict

修飾s1和s2 變元,可確保它們在該原型中指向不同的物件。

2、inline(內聯)關鍵字

行內函數除了保持結構化和函式式的定義方式外,還能使程式設計師寫出高效率的**。函式的每次呼叫與

返回都會消耗相當大的系統資源,尤其是當函式呼叫發生在重複次數很多的迴圈語句中時。一般情況下,當發

生一次函式呼叫時,變元需要進棧,各種暫存器記憶體需要儲存。當函式返回時,暫存器的內容需要恢復。如果該

函式在**內進行聯機擴充套件,當**執行時,這些儲存和恢復操作旅遊活動會再發生,而且函式呼叫的執

行速度也會大大加快。函式的聯機擴充套件會產生較長的**,所以只應該內聯對應用程式效能有顯著影響的

函式以及長度較短的函式。

3、新增資料型別

_bool

值是0或1。c99中增加了用來定義bool、true以及false巨集的標頭檔案夾,以便程式

員能夠編寫同時相容於c與c++的應用程式。在編寫新的應用程式時,應該使用

標頭檔案中的bool巨集。

_complex and _imaginary

c99標準中定義的複數型別如下:float_complex; float_imaginary; double_complex;

double_imaginary; long double_complex; long double_imaginary.

標頭檔案中定義了complex和imaginary巨集,並將它們擴充套件為_complex和_imaginary,

因此在編寫新的應用程式時,應該使用標頭檔案中的complex和imaginary巨集。

long long int

c99標準中引進了long long int(-(2e63 - 1)至2e63 - 1)和unsigned long long int(0 - 2e64

- 1)。long long int能夠支援的整數長度為64位。

c語言目前使用最多的是哪個標準?c89還是c99?還是??

2樓:山水阿銳

c89是老標準,c99相對是新標準.具體選擇看你所從事的是什麼行業?

俺是做嵌入式的,如果用支援c99的編譯器,可移植性就不高.因為很多老裝置用的都是c89標準.不過c99是以後的趨勢.

因為現在很多比如銀行、航空、稅務、通訊……系統的源**仍是c89我猜。把有限的生命浪費在品嚐/品鑑無窮多種的新鮮、靚麗、新增很多香精的語法糖中,我認為不值當也不健康。

3樓:願之守護者

c99。

c89已結過時了

c89,c99,c11等c語言標準是幹嗎的?

4樓:

c99是標準iso/iec 9899:1999的簡稱。

2023年12月8號,iso 釋出了新的 c 語言的新標準——c11,之前被稱為c1x,官方名稱 iso/iec 9899:2011。

c11是目前最新的c語言標準。

5樓:

c89。雖然c99也出來很久了,不過大部分編譯器還沒完全支援,支援的也大部分會預設使用c89

6樓:匿名使用者

不是編譯器對新標準的支援不積極,是你更新開發環境不積極,這都什麼年代了,還用vc++

7樓:匿名使用者

c語言的標準就是定義任何一個支援該標準的c語言編譯器必須支援的語法和必須提供的庫。新的標準是在舊標準的基礎上進行擴充套件,一般都是向後相容的。

不過現在的編譯器對c語言標準的支援不太積極(主要精力放在c++上面),比如vc++編譯器只是部分支援了c99,所以新的c語言標準不太實用,你最好還是好好學習c89標準,現在的c語言教程一般都是以這個標準。

8樓:

c89已經過時了!

c99才是正確的。並且c99標準的可以直接使用vs2013/2015編譯。

vc++6.0對c99的支援是部分的!

c99是對c89的擴充套件,也有修改,所以強烈要求學習c99標準!

我先問下計算機二級c語言,用的是c99還是c89標準的,這兩個標準有什麼不同啊

9樓:匿名使用者

全國的貌似是turbo c2,江蘇的是turbo c3,編譯器裡面有整合的,不用考慮,在網上直接下軟體就可以了啊!

c語言的c89和c99兩個版本哪個用得更廣泛

10樓:

c89。雖然c99也出來很久了,不過大部分編譯器還沒完全支援,支援的也大部分會預設使用c89

鑽石的4c標準是什麼,鑽石4C標準是什麼?

浩哥鑽石說 學習了鑽石4c標準之後,你是否對選購鑽石有了一定的見解了呢? dr鑽戒 鑽石的4c標準指,鑽石重量 在其他3c相同情況下,鑽石 與重量成正比 切工 鑽石切工賦予了鑽石第二生命,好的切工可以讓鑽石綻放絢麗的火彩 顏色 鑽石顏色以無色為上等,顏色越深越差和淨度 淨度是指鑽石內含物多少,鑽石內...

鑽石的4C標準是什麼,鑽石的4c標準是什麼?

靈魂饕餮 鑽石4c標準 對於一顆成品鑽石,國際上用4c標準來進行分級。這4c包括 重量 caratage 淨度 clarity 顏色 color 和切工 cat 4c標準對成品鑽石的質量級別有著直接的影響。1,鑽石重量 以克拉 又稱卡 計算。1克拉 200毫克 0.2克。一克拉分為一百份,每一份稱為...

stm 32用的c和89c51的c51有什麼區別

硬體開發 哎,一看你就是剛接觸stm32,你也肯定從51微控制器轉向arm微控制器的,注意51微控制器是微控制器中最簡單的一款,學習51微控制器的人,很少能掌握c語言,很多人學習51微控制器,就從簡單的流水燈 數碼管 lcd1602液晶 lcd12864液晶 ds1302時鐘 ds18b20溫度感測...