日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ANSI C的标准

發布時間:2024/4/19 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ANSI C的标准 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

驀然回首C語言系列——ANSI C的標準


前面的話

現在的大學牲入校時,竟然都是用的VC6.0 這么復古的 IDE ,1989年的標準,細數到現在已經有大概30年了

學習,當然要學習新的東西,要是現在還是學那些上世紀 的舊東西,怎么能體現當代革新的精神呢?

所以在這個博文里,給大家介紹一下 什么是ANSI C ,及VC6.0 的C89與C99的區別,然后向更新的C11進發

什么是ANSI C

萬物都有它的標準,C語言也不例外,C的常見標準有linux c、GNU C、C51、etc,ANSI C只是其諸多標準中的一個,百科簡介如下:

1983 年, 美國國家標準協會(ANSI)委任一個委員會 X3J11 對 C 語言 進行標準化。 經過長期艱苦的過程, 該委員會的工作于 1989 年 12 月 14 日正式被批準為ANSI X3.159-1989 并于 1990 年春天頒布。
當然,這個標準是用的最多最廣的,它致力于C語言的標準化。

C89與C99

(當然,他們的差別太多太多,我只是粗略的講講,簡單的,易見的)

main

想必大家成為大學牲,第一個C就是hello world

main () { printf ("hello world!"); }

這個程序在Vc6.0(C89 )下很簡單的通過了編譯
然而在C99的標準下,沒有通過編譯

(讓我想到了,剛剛學C時的無敵的Bug..哈哈)

原因就是標準不同
在最新的 C99 標準中,只有以下兩種定義方式是正確的:

int main( void ) /* 無參形式 */ { something... return 0; } int main( int argc, char **argv)/*帶參形式*/ { something... return 0; }

int指明了main()函數的返回值類型,函數名后面的圓括號一般包含傳遞給函數的信息。void表示沒有給函數傳遞參數。

所以在我們自己的hello world中,將會發現程序常常以。
main() 這種形式開始。C89標準允許這種形式,但是C99標準不允許。因此即使你當前的編譯器允許,也不要這么寫。
你還可能看到過另一種形式。
void main() 有些編譯器允許這種形式,但是還沒有任何標準考慮接受它。

void main( ) 的定義從來就不存在于 C++ 或者 C . —-C++ 之父 Bjarne Stroustrup

所以,編譯器不必接受這種形式,并且很多編譯器也不允許這么寫。
我們堅持使用標準的意義在于:當你把程序從一個編譯器移到另一個編譯器時,照樣能正常運行。

變量的定義

“C語言的變量定義只能放在最前面!”學長對懵逼的我大喊道…..
心中暗想到,用的時候再定義,不是更明了簡介??
哈哈,事實就是這樣,這個能否又是涉及到了C標準的問題,看例子:
code:

int i = 0 ;//something...for (i=0;i<9;i++) //這樣,i隔太遠的話,再加之定義不明確的話,我不會記得i的.. printf("%d",i);

code:

for (int i=0;i<9;i++) //這樣的話是不是顯得得體簡介?需要的時候再定義! printf("%d",i);

所以在C99中,引入了這樣的使用,實屬不錯!

當然,C89中是不能通過的
另外,這些變量的作用范圍只有for語句中,用后這些變量將會被回收方便省力~

當然,C89和C99的差別遠不止如此,我只是提出了最常見的,新手沒最容易遇到的兩點

結語

學習是點滴積累的過程,一點點的積累,后來收獲總是會有的1

總結

以上是生活随笔為你收集整理的ANSI C的标准的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。