❶ c語言是誰發明的
C語言的歷史可以追溯到1969年。 在1969年,美國貝爾實驗室的Ken Thompson為DEC PDP-7計算機設計了一個操作系統軟體,這就是最早的UNIX。接著,他又根據劍橋大學的Martin Richards設計的BCPL語言為UNIX設計了一種便於編寫系統軟體的語言,命名為B。B語言是一種無類型的語言,直接對機器字操作,這一點和後來的C語言有很大不同。作為系統軟體編程語言的第一個應用,Ken Thompson使用B語言重寫了其自身的解釋程序。 1972—1973年間,同在貝爾實驗室的Denis Ritchie改造了B語言,為其添加了數據類型的概念,並將原來的解釋程序改寫為可以在直接生成機器代碼的編譯程序,然後將其命名為C。1973年,Ken Thompson小組在PDP-11機上用C重新改寫了UNIX的內核。與此同時,C語言的編譯程序也被移植到IBM 360/370、Honeywell 11以時VAX-11/780等多種計算機上,迅速成為應用最廣泛的系統程序設計語言。 然而,C語言也存在一些缺陷,例如類型檢查機制相對較弱、缺少支持代碼重用的語言結構等,造成用C語言開發大程序比較困難。 為了克服C語言存在的缺點,貝樂實驗室的Bjarne Stroustrup博士及其同事開始對C語言進行改進和擴充,將「類」的概念引入了C語言,構成了最早的C++語言(1983)。後來,Stroustrup和他的同事們又為C++引進了運算符重載、引用、虛函數等許多特性,並使之更加精煉,於1989後推出了AT&T C++ 2.0版。隨後美國國家標准化協會ANSI(American National Standard Instiute)和國際標准化組織ISO(International Standards Organization)一起進行了標准化工作,並於1998年正式發布了C++語言的國際標准ISO/IEC:98-14882。各軟體商推出的C++編譯器都支持該標准,並有不同程序的拓展。 C++支持面向對象的程序設計方法,特別適合於中型和大型的軟體開發項目,從開發時間、費用到軟體的重用性、可擴充性、可維護性和可靠性等方面,C++均具有很大的優越性。同時,C++又是C語言的一個超集,這就使得許多C代碼不經修改就可被C++編譯通過。
❷ C語言之父——丹尼斯·里奇
人們對里奇的紀念,遠不及對喬布斯鋪天蓋地的悼念。可是,里奇值得人們那樣去做。
還是有人出來說了句公道話。
「史蒂夫·喬布斯去世引發了巨大的反響,這當然合情合理。即便影響實際上更為廣泛,丹尼斯卻不為公眾所知」,羅伯·派克說。羅伯是一名在Google工作的程序員,作為業界的傳奇性人物,曾經與里奇在著名的貝爾實驗室共事20年。
周三晚間,派克在Google+上發表消息稱,在與病魔進行長久的抗爭後,里奇於上周末在新澤西的家中溘然長逝。雖然在技術圈內引起大量反響,但在主流媒體上,里奇卻沒有得到同巨大影響相稱的悼念。丹尼斯·里奇作為C語言之父,和貝爾實驗室資深研究員肯·湯姆森一起使用C語言開發了Unix,當今世界大量依賴的操作系統,其中包括史蒂夫·喬布斯治下的蘋果帝國。
「現下互聯網基本都在用這兩樣東西:C語言和UNIX」,派克對《連線》雜志稱,「瀏覽器是用C語言寫的。UNIX的內核——基本上是網際網路運作的基礎——也是用C寫的。Web伺服器也是用C語言寫的,如果不是的話,那就是用Java或者C++寫的,兩者都是C語言的派生;要不就是Python或者Ruby,用C語言實現的。然後我幾乎敢保證,運行這些程序的網路硬體,是用C語言開發的軟體驅動的。」
「幾乎很難誇大丹尼斯在信息經濟基礎設施方面無所不在的影響力。」
他補充說,Windows曾經也是用C語言編寫,而UNIX同時也支撐了蘋果桌面操作系統Mac OS X,以及iPhone與iPad的操作系統iOS。「如果說喬布斯是台前之王,那裡奇就是幕後之王。」MIT電氣工程與計算機系教授Martin Rinard如此評價道。Rinard也是計算機科學與人工智慧實驗室的成員。
「喬布斯的過人之處在於其品位獨特,打造人們為之著迷並引人注目的產品。而里奇卻擅長於開發一些技術人員使用的基礎設施,天天被人們使用卻不為人知。」
從B語言到C語言
為了更好開發UNIX,丹尼斯·里奇而發明了C語言。最初的UNIX內核使用匯編語言編寫,之後他們很快決定要用一種高級語言,讓他們更好的駕馭操作系統中的復雜數據。1970年左右,他們嘗試使用Fortran,不過沒有達到預期目標。接著,在湯姆森創立的B語言基礎上,里奇提出了一門新語言
不管你是從哪裡聽來的消息,B語言得名於湯姆森的妻子Bonnie,抑或是BCPL,一門劍橋於60年代中期開發的語言。
B語言是一種解釋性語言——意味著它由一個運行於CPU之上的中間件解釋執行——而C卻是一門編譯語言。它被翻譯成機器代碼,在CPU上直接執行。即便如此,C當時被認為是一門高級語言。C語言提供了里奇和湯姆森想要的靈活性,卻也很快。
關於里奇一直流傳的一個笑話是:C語言同時擁有了「匯編語言的強大能力以及...匯編語言的便利性」。換句話說,他承認C語言並不完美,並且十分接近硬體層次。如今C語言被認為是一門低級語言而不是高級語言。不過這個笑話並不公平。C語言提供了真正的數據結構概念,從這個角度來說已經足夠高級了。
「當你在編寫一個大型程序——比如UNIX——你必須管理好各種各樣模塊之間的交互:所有用戶、文件系統、磁碟、程序執行等等。而有效的管理則需要良好的數據表示,這就是所謂的數據結構」,派克說。
「在沒有數據結構組織的情況下,編寫一個與UNIX一樣一致和優雅的內核基本上是不可能的。需要一個機制組織好數據,而Fortran卻不擅長於此。」
在那個時候,寫一個操作系統並不多見,這也給了里奇和湯姆森機會,在70年代末把操作系統移植到其它平台。「從此UNIX洪水之門被打開」,派克說,「這全都多虧有了C語言。」
蘋果、微軟及其他
與此同時,C語言也開始傳播到全世界,從貝爾實驗室到全世界的大學,也到了微軟,一個在80年代異軍突起的軟體公司。「C語言的開發是一個重大的飛躍,是個很好的折衷...C語言達到了完美的平衡,讓你在較高層次高效率開發的同時,卻不失去對每處細節的控制」,NVIDIA和貝爾的首席科學家兼斯坦福大學工程系教授Bill Dally說。「它為之後數十年來軟體開發定下了基調。」
正如派克指出的那樣,C語言內置的數據結構後來發展出面向對象範式,被現代編程語言如C++和Java大量採用。
1973年,里奇發表了關於這門語言的論文,被認為是革命開始的標志。5年後,他和同事布萊恩·克尼漢(Brian Kernighan)發布了C語言的權威著作:《C程序設計語言》。該書最早是克尼漢為C語言編寫的教程,後來他拉著丹尼斯一起把書寫完。
當派克還在多倫多大學讀本科的時候,在一個因病返家的下午里讀到了這本書。「那本參考手冊相對於其他的手冊而言,簡直就是清晰和可讀的典範。毋庸置疑是一部經典之作。」,他說,「我生病躺床上翻一翻,沒想到竟讓我忘記了病痛。」
和許多大學生一樣,Pike那時已經開始使用C語言了。由於貝爾實驗室開始分發UNIX源代碼,它逐漸風靡大學校園。此外,UNIX還催生了現代開源運動。這並不是什麼言過其實,里奇的影響之大怎麼說都不為過。即便里奇在1983年獲得的圖靈獎和1998年獲得的國家技術勛章也不能完全彰顯他的貢獻。
在克尼漢和派克眼中,里奇是一個少有的孤僻的人。「我和他一同工作了超過20個年頭,但還是覺得不是很了解他這個人」,派克說。但這並不是他低調的理由。史蒂夫·喬布斯也是一個孤僻的人,只不過保持低調只使得人們對他的崇拜有增無減。
里奇所處的時代和工作環境與喬布斯千差萬別,這也許是他未得到應得紀念的原因。但是,他留下的遺產總有大佬能夠明白。「眾所周知牛頓說過他是站在巨人的肩膀上」,克尼漢說,「我們都站在丹尼斯的肩膀上。」
❸ 丹尼斯·里奇(C語言之父)的英文介紹 要英文!要長的 不能太短!!!!好的補50分!!急用!!!!!
Dennis MacAlistair Ritchie (born September 9, 1941) is an American computer scientist notable for his influence on C and other programming languages, and on operating systems such as Multics and Unix. He received the Turing Award in 1983 and the National Medal of Technology in 1998. Ritchie was the head of Lucent Technologies System Software Research Department when he retired in 2007.
Born in Bronxville, New York, Ritchie graated from Harvard with degrees in physics and applied mathematics. In 1967, he began working at the Bell Labs' Computing Sciences Research Center.
Ritchie is best known as the creator of the C programming language and a key developer of the Unix operating system, and as co-author of the definitive book on C, The C Programming Language, commonly referred to as 'K/R' or K&R (in reference to the authors Kernighan and Ritchie).
Ritchie's invention of C and his role in the development of Unix alongside Ken Thompson, has placed him as an important pioneer of modern computing. The C language is still widely used today in application and operating system development and its influence is seen in most modern programming languages. Unix has also been influential, establishing concepts and principles that are now well-established precepts of computing. The popular Linux operating system and its tools are descendants of Ritchie's work and the Windows operating systems include Unix compatibility tools and C compilers for developers.
Ritchie has said that creating the C language 'looked like a good thing to do' and that anyone else in the same place at the same time would have done the same thing, though Bell Labs colleague Bjarne Stroustrup, developer of C++, said that "if Dennis had decided to spend that decade on esoteric math, Unix would have been stillborn."
Following the success of Unix, Ritchie continued research into operating systems and programming languages with contributions to the Plan 9 and Inferno operating systems and the Limbo programming language.
In 1983, Ritchie and Ken Thompson jointly received the Turing Award for their development of generic operating systems theory and specifically for the implementation of the UNIX operating system. Ritchie's Turing Award lecture was titled, "Reflections on Software Research."
On April 27, 1999, Thompson and Ritchie jointly received the 1998 National Medal of Technology from President Bill Clinton for co-inventing the UNIX operating system and the C programming language which together have led to enormous advances in computer hardware, software, and networking systems and stimulated growth of an entire instry, thereby enhancing American leadership in the Information Age
Dennis Ritchie is often referred to as "dmr" (his Bell Labs email address) in technical discussion groups.
❹ C語言編程軟體的C語言之父
在眾多的國際互動論壇上,計算機愛好者們以特有的方式紀念這位編程語言的重要奠基人。許多網友的發帖中沒有片言隻字,僅僅留下一個分號「;」。在C語言中,分號標志著一行指令語句的結束,網友們以此來悼念「C語言之父」,美國著名計算機專家丹尼斯·里奇(Dennis Ritchie)所引領的時代悄然遠去。
在日益紛繁復雜的程序設計語言王國中,C語言因其簡潔、有效、通用的特性而始終占據一席之地。被譽為「C語言之父」,同時也是操作系統Unix之父的C語言發明人之一——丹尼斯·里奇10月9日以70歲之齡辭世。
生於1941年9月9日的丹尼斯·里奇曾在哈佛大學學習物理學和應用數學,1967年他進入貝爾實驗室,並曾經擔任朗訊技術公司系統軟體研究部門的領導人。
1983年,美國計算機協會將當年的圖靈獎破例頒給了作為軟體工程師的肯·湯普遜與里奇,獲獎原因是他們「研究發展了通用的操作系統理論,尤其是實現了Unix操作系統」。並且,美國計算機協會當年還決定新設立一個獎項——軟體系統獎,以獎勵那些優秀的軟體開發者,首個軟體系統獎當然也是非他們兩人莫屬。
盡管通過Unix拿獎拿到手軟,但令里奇引起最大關注和反響的則是C語言的問世。1999年,里奇和湯普遜為發展C語言和Unix操作系統一起獲得了美國國家技術獎章。
雖然在C語言之後,C++、Java等各式各樣計算機高級語言層出不窮,但不少程序員仍舊認為,C語言簡潔、高效、靈活的特性令其具有獨特魅力。「現在的程序編寫朝著越來越冗長龐大的方向發展,而C語言雖然屬於相對『低級』的編程語言,但它的簡潔之美是無可替代的。」一位電腦程序員道出了自己格外青睞C語言的原因。
和里奇所創造的C語言一樣,Unix系統也同樣具有簡潔、樸素、小巧的特性。但正如里奇自己所說的那樣,「Unix系統是一個簡單基本的操作系統,但學會欣賞簡潔需要天賦。」而里奇本人,盡管在軟體發展史上佔有舉足輕重的地位,也同樣在從事的領域辛勤而低調地耕耘近40年。
❺ C語言是誰發明的
C語言是「C語言之父」Dennis MacAlistair Ritchie(中文名:丹尼斯·里奇)創造出來的。
C語言是D.M.Ritchie在B語言的基礎上創造出來的。C語言的出現經歷了以下歷程:
在1970年,美國貝爾實驗室的 Ken Thompson,以BCPL語言為基礎,設計出很簡單且很接近硬體的B語言(取BCPL的首字母)。並且他用B語言寫了第一個UNIX操作系統。
1972年,美國貝爾實驗室的 D.M.Ritchie 在B語言的基礎上最終設計出了一種新的語言,他取了BCPL的第二個字母作為這種語言的名字,這就是C語言。
1973年初,C語言的主體完成。Thompson和Ritchie迫不及待地開始用它完全重寫了UNIX。直到今天,各種版本的UNIX內核和周邊工具仍然使用C語言作為最主要的開發語言,其中還有不少繼承Thompson和Ritchie之手的代碼。
(5)c語言程序設計丹尼斯擴展閱讀:
丹尼斯·里奇發明出C語言之後,產生了十分強大的社會影響,具體如下:
C語言是使用最廣泛的語言之一。C語言的誕生是現代程序語言革命的起點,是程序設計語言發展史中的一個里程碑。
自C語言出現後,以C語言為根基的C++、Java和C#等面向對象語言相繼誕生,並在各自領域大獲成功。但C語言依舊在系統編程、嵌入式編程等領域占據著統治地位。
C語言,這種最有效、最通用的編程語言,就是丹尼斯·里奇開發的,而這還是他在做另一個項目時的副產品。丹尼斯·里奇還和肯·湯普遜一起開發了Unix操作系統,因此,他還是名副其實的Unix之父。
❻ C語言程序設計
1、C程序的租毀執行特點是 (c)
A、從程序的main函緩帆數開始,到程序的最後一個函數結束
B、從程序的第一個函數開始,到程序的最後一個函數結束
C、從程序的main函數開始,到程序的main函數結束
D、從程序的第一個函數開始,到程序的main函數結束
2、字元型(char)數據在微機內存中的存儲形式是 (b)
A、BCD碼 B、ASCH碼 C、補碼 D、反碼
3、設a=5,b=6,c=7,d=8,m=2,n=2,執行(m==a>b)&&(n==c>d)後n的值為(d)
A、2 B、3 C、1 D、0
4、設有定義;float a=2,b=4,h=3;
以下語言表達式中與代數式1/2(a+b)h計算結果相符的是 (d)
A、(a+b)*h/2 B、(1/2)*(a+b)*h
C、(a+b)*h*1/2 D、h/2*(a+b)
5、在以下一組運算符中,優先順序最高的運算符是
(d)
A、&& B、= C、<= D、%
6、設有以下定義// 這題目 貌似錯的
int a=0;
double b=1.25;
char c=』A』;
#define D 2
則下面語句中錯誤 的是 ()
A、a++ B、b++ C、c++ D、d++
7、設int m=1,n=2,m++==n表達式的結果是
(b)
A、0 B、1 C、2 D、3
8、設有如下定義:int x=10,y=3,z;則語句
printf(「%d/n」,z=(x%y,x/y));的輸出結果是 (a)
A、3 B、1 C、0 D、4
9、假定所有變數均已正確說明,下列程序段運行後X的值是 (b)
int a,b,c,x;
a=b=c=0;
if(b)
x=3
else
x=4;
A、35 B、4 C、34 D、3
10、設變數弊哪備c為char類型,能正確判斷出c為小寫字母的表達式是(c)
A、『a』<=c<=』z』 B、(c>=』a』)||(c<=』z』)
C、(c<=』a』)&&(c<=』z』) D、以上都不是
11、為了避免在嵌套的條件語句(if-else)中產生二義性,C語言規定:else子句總是
與 (b) 配對。
A、縮排位置相同的if B、其之前最近的if
C、其之後最近的if D、同一行上的if
12、循環語句while和do-while的主要區別是(a)
A、do-while循環體至少要無條件執行一次,while循環可以一次都不執行
B、while的循環控制條件比do-while的循環控制條件更嚴格
C、do-while允許從外部跳轉到循環體內
D、do-while的循環體不能是復合語句
13、當執行以下程序段時
x=-1;
do{x=x*x;} while(!x); (a)
A、循環體將執行一次 B、循環體將執行兩次
C、循環體將執行無限次 D、系統將提示有語法錯誤
14、設有定義:int a{10};以下對a數組元素正確引用的是(d)
A、a[10] B、a[3,5] C、a (5) D、a[10-10]
15、若用數組名作為函數的實參,傳遞給形參的是
(a)
A、數組的首地址 B、數組第一個元素的值
C、數組中全部元素的值 D、數組元素的個數
16、C語言允許函數類型預設定義,此時函數值隱含的類型是 (b) A、float B、int C、long D、double
❼ C語言是誰開發的
C語言是由UNIX的研製者丹尼斯·里奇(Dennis Ritchie)和肯·湯普遜(Ken Thompson)於1970年研製出的B語言的基礎上發展和完善起來的。 他們都是早期AT&T的Bell實驗室的計算機科學家,他們還是UNIX的開發者
❽ c語言的發明者是誰
丹尼斯·里奇,C語言之父,UNIX之父。曾擔任朗訊科技公司貝爾實驗室下屬的計算機科學研究中心系統軟體研究部的主任一職。1978年與布備逗萊恩·科爾尼干一起出版了名著《C程序設計語言(The C Programming Language)》,現在此書已翻譯成多種語言,成為C語言方面最權威的教材之一。2011年仿寬賣10月12日(北京時間為10月13日),丹尼斯·里奇去世,享年70歲。巧納
丹尼斯·里奇,美國計算機科學家,對C語言和其他編程語言、Multics和Unix等操作系統的發展做出了巨大貢獻。
❾ c語言的發展史
C語言,是一種通用的、過程式的編程語言,廣泛用於系統與應用軟體的開發。具有高效、靈活、功能豐富、表達力強和較高的移植性等特點,在程序員中備受青睞。
C語言是由UNIX的研製者丹尼斯·里奇(Dennis Ritchie)於1970年 由 肯·湯普遜(Ken Thompson)所研製出的B語言的基礎上發展和完善起來的。目前,C語言編譯器普遍存在於各種不同的操作系統中,例如UNIX、MS-DOS、Microsoft Windows及Linux等。C語言的設計影響了許多後來的編程語言,例如C++、Objective-C、Java、C#等。
後來於1980年代,為了避免各開發廠商用的C語言語法產生差異,由美國國家標准局(American National Standard Institution)為C語言訂定了一套完整的國際標准語法,稱為ANSI C,作為C語言的標准。1980年代至今的有關程序開發工具,一般都支持符合ANSI C的語法。
C語言是一個程序語言,設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。C語言也很適合搭配匯編語言來使用。盡管C語言提供了許多低級處理的功能,但仍然保持著良好跨平台的特性,以一個標准規格寫出的C語言程序可在許多電腦平台上進行編譯,甚至包含一些嵌入式處理器(單片機或稱MCU)以及超級電腦等作業平台。
早期發展
C語言最早是由丹尼斯·里奇為了在PDP-11電腦上運行的UNIX系統所設計出來的編程語言,第一次發展在1969年到1973年之間。之所以被稱為「C」是因為C語言的很多特性是由一種更早的被稱為B語言的編程語言中發展而來。早期操作系統的核心大多由匯編語言組成,隨著C語言的發展,C語言已經可以用來編寫操作系統的核心。1973年,Unix操作系統的核心正式用C語言改寫,這是C語言第一次應用在操作系統的核心編寫上。
K&R C
1978年,丹尼斯·里奇(Dennis Ritchie)和布萊恩·柯林漢(Brian Kernighan)合作出版了《C程序設計語言》的第一版。書中介紹的C語言標准也被C語言程序員稱作「K&R C」,第二版的書中也包含了一些ANSI C的標准。K&R C主要介紹了以下特色:
結構(struct)類型
長整數(long int)類型
無符號整數(unsigned int)類型
把運算符=+和=-改為+=和-=。因為=+和=-會使得編譯器不知道用戶要處理i = -10還是i =- 10,使得處理上產生混淆。
即使在後來ANSI C標准被提出的許多年後,K&R C仍然是許多編譯器的最低標准要求,許多老舊的編譯仍然運行K&R C的標准。
ANSI C 和 ISO C
1989年,C語言被 ANSI 標准化(ANSI X3.159-1989)。標准化的一個目的是擴展K&R C。這個標准包括了一些新特性。在K&R出版後,一些新特性被非官方地加到C語言中。
void 函數
函數返回 struct 或 union 類型
void * 數據類型
在ANSI標准化自己的過程中,一些新的特性被加了進去。ANSI也規定了一套標准函數庫。ANSI ISO(國際標准化組織)成立 ISO/IEC JTC1/SC22/WG14 工作組,來規定國際標準的C語言。通過對ANSI標準的少量修改,最終通過了 ISO 9899:1990。隨後,ISO標准被 ANSI 採納。
傳統C語言到ANSI/ISO標准C語言的改進包括:
增加了真正的標准庫
新的預處理命令與特性
函數原型允許在函數申明中指定參數類型
一些新的關鍵字,包括 const、volatile 與 signed
寬字元、寬字元串與位元組多字元
對約定規則、聲明和類型檢查的許多小改動與澄清
WG14工作小組之後又於1995年,對1985年頒布的標准做了兩處技術修訂(缺陷修復)和一個補充(擴展)。下面是 1995 年做出的所有修改:
3 個新的標准庫頭文件 iso646.h、wctype.h 和 wchar.h
幾個新的記號與預定義宏,用於對國際化提供更好的支持
printf/sprintf 函數一系列新的格式代碼
大量的函數和一些類型與常量,用於多位元組字元和寬位元組字元
C99在ANSI的標准確立後,C語言的規范在一段時間內沒有大的變動,然而C++在自己的標准化創建過程中繼續發展壯大。《標准修正案一》在1995年為C語言創建了一個新標准,但是只修正了一些C89標准中的細節和增加更多更廣的國際字元集支持。不過,這個標准引出了1999年ISO 9899:1999的發表。它通常被稱為C99。C99被ANSI於2000年3月採用。
在C99中包括的特性有:
增加了對編譯器的限制,比如源程序每行要求至少支持到 4095 位元組,變數名函數名的要求支持到 63 位元組(extern 要求支持到 31)。
增強了預處理功能。例如:
宏支持取可變參數 #define Macro(...) __VA_ARGS__
使用宏的時候,允許省略參數,被省略的參數會被擴展成空串。
支持 // 開頭的單行注釋(這個特性實際上在C89的很多編譯器上已經被支持了)
增加了新關鍵字 restrict, inline, _Complex, _Imaginary, _Bool
支持 long long, long double _Complex, float _Complex 等類型
支持不定長的數組,即數組長度可以在運行時決定,比如利用變數作為數組長度。聲明時使用 int a[var] 的形式。不過考慮到效率和實現,不定長數組不能用在全局,或 struct 與 union 里。
變數聲明不必放在語句塊的開頭,for 語句提倡寫成 for(int i=0;i<100;++i) 的形式,即i 只在 for 語句塊內部有效。
允許採用(type_name){xx,xx,xx} 類似於 C++ 的構造函數的形式構造匿名的結構體。
初始化結構的時候允許對特定的元素賦值,形式為:
struct {int a[3],b;} foo[] = { [0].a = {1}, [1].a = 2 };
struct {int a, b, c, d;} foo = { .a = 1, .c = 3, 4, .b = 5} // 3,4 是對 .c,.d 賦值的
格式化字元串中,利用 \u 支持 unicode 的字元。
支持 16 進制的浮點數的描述。
printf scanf 的格式化串增加了對 long long int 類型的支持。
浮點數的內部數據描述支持了新標准,可以使用 #pragma 編譯器指令指定。
除了已有的 __line__ __file__ 以外,增加了 __func__ 得到當前的函數名。
允許編譯器化簡非常數的表達式。
修改了 / % 處理負數時的定義,這樣可以給出明確的結果,例如在C89中-22 / 7 = -3, -22 % 7 = -1 ,也可以-22 / 7= -4, -22 % 7 = 6。 而C99中明確為 -22 / 7 = -3, -22 % 7 = -1,只有一種結果。
取消了函數返回類型默認為 int 的規定。
允許 struct 定義的最後一個數組不指定其長度,寫做 [] 。
const const int i 將被當作 const int i 處理。
增加和修改了一些標准頭文件,比如定義 bool 的 <stdbool.h> ,定義一些標准長度的 int 的 <inttypes.h> ,定義復數的 <complex.h> ,定義寬字元的 <wctype.h> ,類似於泛型的數學函數 <tgmath.h>, 浮點數相關的 <fenv.h>。 在<stdarg.h> 增加了 va_ 用於復制 ... 的參數。<time.h> 里增加了 struct tmx ,對 struct tm 做了擴展。
輸入輸出對寬字元以及長整數等做了相應的支持。
❿ c語言是誰發明的/
C語言的祖先是BCPL語言。 1967年,劍橋大學的Martin Richards 對CPL語言進行了簡化,於是產生了BCPL(Basic Combined Pogramming Language)語言。 1970年,美國貝爾實驗室的Ken Thompson。以BCPL語言為基礎,設計出很簡單且很接近硬體的B語言(取BCPL的首字母)。並且他用B語言寫了第一個UNIX操作系統。 在1972年,美國貝爾實驗室的D.M.Ritchie在B語言的基礎上最終設計出了一種新的語言,他取了BCPL的第二個字母作為這種語言的名字,這就是C語言。 為了使UNIX操作系統推廣,1977年Dennis M.Ritchie 發表了不依賴於具體機器系統的C語言編譯文本《可移植的C語言編譯程序》。 1978年由美國電話電報公司(AT&T)貝爾實驗室正式發表了C語言。同時由B.W.Kernighan和D.M.Ritchie合著 c語言程序設計
了著名的《The C Programming Language》一書。通常簡稱為《K&R》,也有人稱之為《K&R》標准。但是,在《K&R》中並沒有定義一個完整的標准C語言,後來由美國國家標准化協會(American National Standards Institute)在此基礎上制定了一個C語言標准,於一九八三年發表。通常稱之為ANSI C。 K&R第一版在很多語言細節上也不夠精確,對於pcc這個「參照編譯器」來說,它日益顯得不切實際;K&R甚至沒有很好表達它所要描述的語言,把後續擴展扔到了一邊。最後,C在早期項目中的使用受商業和政府合同支配,它意味著一個認可的正式標準是重要的。因此(在M. D. McIlroy的催促下),ANSI於1983年夏天,在CBEMA的領導下建立了X3J11委員會,目的是產生一個C標准。X3J11在1989年末提出了一個他們的報告[ANSI 89],後來這個標准被ISO接受為ISO/IEC 9899-1990。 1990年,國際標准化組織ISO(International Organization for Standards)接受了89 ANSI C 為I SO C 的標准(ISO9899-1990)。1994年,ISO修訂了C語言的標准。 1995年,ISO對C90做了一些修訂,即「1995基準增補1(ISO/IEC/9899/AMD1:1995)」。1999年,ISO有對C語言標准進行修訂,在基本保留原來C語言特徵的基礎上,針對應該的需要,增加了一些功能,尤其是對C++中的一些功能,命名為ISO/IEC9899:1999。 2001年和2004年先後進行了兩次技術修正。 目前流行的C語言編譯系統大多是以ANSI C為基礎進行開發的,但不同版本的C編譯系統所實現的語言功能和語法規則有略有差別。