0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

市面上編程語言幾百種,是不是C語言就不行了呢?

5RJg_mcuworld ? 來源:陳年麗 ? 2019-07-23 11:29 ? 次閱讀

如今,市面上編程語言幾百種,很多人覺得Python、 JAVA這種語言比較火,是不是C語言就不行了呢?

殊不知,C語言依然是現(xiàn)在的主力軍。

一、編程語言排行榜

給大家看一組數(shù)據(jù),2019年7月,最新 TIOBE 編程語言排行榜:

TIOBE開發(fā)語言排行榜每月更新一次,依據(jù)的指數(shù)是基于世界范圍內(nèi)的資深軟件工程師和第三方供應(yīng)商提供,其結(jié)果作為當(dāng)前業(yè)內(nèi)程序開發(fā)語言的流行使用程度的有效指標(biāo)。

雖然不知道具體是如何進(jìn)行排名的,但可信程度還是很高的。

再來看一組數(shù)據(jù),近十幾年 TOP 10 編程語言走勢圖:

這里說幾點(diǎn):

1.Python在近兩年隨著人工智能火了。

2.C語言這么多年位居榜單前列。

C語言這么多年沒有下沉,原因在于C語言屬于系統(tǒng)級語言,屬于底層編程語言。

可以用一句簡單的話來總結(jié):所有上層語言,都離不開底層硬件的支持,離不開C語言的支持。

JAVA的排名能超越C語言,很大程度在于JAVA的應(yīng)用很廣,web應(yīng)用、桌面應(yīng)用、安卓應(yīng)用等。。。

二、C歷史,及C標(biāo)準(zhǔn)

C語言發(fā)展的腳步,其實(shí)一直都沒有停止:從C89、 C90、 C99...... C17,C語言標(biāo)準(zhǔn)還在更新。

1.早期 C

1969:基于 BCPL 創(chuàng)建 B,以作為 Unix 的系統(tǒng)程序語言替代 PDP-7 匯編器。增加運(yùn)算符 ++ 、 -- 、復(fù)合賦值,保持為類 BCPL 的無類型語言。

1971:將 B 移植到 PDP-11 時創(chuàng)建 NB (新“ B ”)。類型( int 、 char 、數(shù)組與指針)、數(shù)組到指針轉(zhuǎn)換、到機(jī)器碼的編譯。

1972:語言更名為 C。結(jié)構(gòu)體、運(yùn)算符 && 及 || 、預(yù)處理器、可移植 I/O

1973:以 C 重寫。無符號整數(shù)、 long 、聯(lián)合體、枚舉、增強(qiáng)的類型安全。

1978:The C Programming Language,第1版

2.標(biāo)準(zhǔn) C

1983:ANSI 建立 X3J11 委員會

1988:The C Programming Language ,第2版

1989:C89 ,ANSI C 標(biāo)準(zhǔn)出版

1990:C90 ,ANSI C 標(biāo)準(zhǔn)被接納為 ISO/IEC 9899-1990

1995:C95 (ISO/IEC 9899 AM1)

極大擴(kuò)充了寬和多字節(jié)字符支持

雙標(biāo)符、iso646.h

1999:C99 (ISO/IEC 9899:1999)

A.新特性:_Bool 、 long long 、 stdint.h 、 inttypes.h 、 restrict 、復(fù)合字面量、變長度數(shù)組、伸縮數(shù)組成員、指代初始化器、 fenv.h 、變參數(shù)宏、復(fù)數(shù)、 __func__ 、十六進(jìn)制浮點(diǎn)格式( %a )、 lconv 的貨幣格式化、 isblank 、窄與寬字符串字面量的連接、枚舉的尾逗號、類函數(shù)宏的空參數(shù)、 STDC_* pragma 、 va_copy 、 tmpnam 的空返回、 setvbuf 中的空指針、 printf 的 hh 與 ll 長度指定符、 snprintf 、 _Exit 、 tgmath.h 、仿 POSIX strftime 指定符

B.來自 C++ :inline 、聲明與代碼混合、 for 循環(huán)的 init 子句中的聲明、 // 注釋、源代碼中的通用字符名

C.移除隱式函數(shù)聲明和隱式 int

2011:C11 (ISO/IEC 9899:2011)

A.具線程的內(nèi)存模型 、 stdatomic.h 、 threads.h 、泛型函數(shù)、 _Alignas/_Alignof 、 _Noreturn 、 _Static_assert 、可分析性擴(kuò)展、對復(fù)數(shù)和虛數(shù)類型的擴(kuò)展、匿名結(jié)構(gòu)體與聯(lián)合體、獨(dú)占文件打開模式、 quick_exit

B.移除 gets

C.來自邊界檢查接口 TR :邊界檢查接口

D.來自 Unicode TR :char16_t 、 char32_t ,及 uchar.h

2018:C17 (ISO/IEC 9899:2018)(C18非正式名稱)

修復(fù)C11許多缺陷,包含棄用 ATOMIC_VAR_INIT 和對下列缺陷報告的修正:

當(dāng)然,這只是其中的一部分,其實(shí)每一年都有動作,只是我們沒有太關(guān)注而已。

三、更加完善的C語言

從上面的發(fā)展歷史,可以看得出來:我們常用的一些功能、API接口等都是一步一步發(fā)展而來,并非從一開始就有的。

自C11之后,C語言擴(kuò)展了許多新功能,特別是很多功能都趨向于C++。

如果你去了解C11標(biāo)準(zhǔn),你會發(fā)現(xiàn)C11定義了一些類似C++的標(biāo)準(zhǔn)API接口,使其更像是“現(xiàn)代”的語言。

感興趣的朋友可以下載C標(biāo)準(zhǔn)手冊來看看:

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • JAVA
    +關(guān)注

    關(guān)注

    19

    文章

    2943

    瀏覽量

    104096
  • 編程語言
    +關(guān)注

    關(guān)注

    10

    文章

    1916

    瀏覽量

    34375

原文標(biāo)題:C語言依然位居榜單前列,仍然值得程序員學(xué)習(xí)

文章出處:【微信號:mcuworld,微信公眾號:嵌入式資訊精選】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    labview是什么編程語言寫的

    的一圖形化編程語言。它并不是用傳統(tǒng)的文本編程語言(如C
    的頭像 發(fā)表于 09-04 16:00 ?145次閱讀

    請問Matter Android APP是否支持連接市面上的Matter設(shè)備?

    各位大佬們,請教下我基于matter開源的Android App,是否可以連接市面上其他的matter協(xié)議設(shè)備并且進(jìn)行控制?如果不可以,是需要其他認(rèn)證碼?
    發(fā)表于 07-24 07:25

    按照這樣學(xué)習(xí)C語言,成為卷王不是夢!

    在計算機(jī)編程領(lǐng)域,C語言被譽(yù)為一強(qiáng)大而靈活的編程語言,掌握好
    的頭像 發(fā)表于 07-06 08:04 ?198次閱讀
    按照這樣學(xué)習(xí)<b class='flag-5'>C</b><b class='flag-5'>語言</b>,成為卷王<b class='flag-5'>不是</b>夢!

    PLC編程語言C語言的區(qū)別

    在工業(yè)自動化和計算機(jī)編程領(lǐng)域中,PLC(可編程邏輯控制器)編程語言C語言各自扮演著重要的角色。
    的頭像 發(fā)表于 06-14 17:11 ?1578次閱讀

    在上位機(jī)輸入字符加換行,但是多加一個換行字符就不行了的原因?

    在上位機(jī)輸入字符加換行,可以打印的出來,但是多加一個換行字符就不行了,然后就卡死了,不知道是邏輯上的錯誤還是什么的,剛上收弄hal庫,很多不知道...在串口通信上有什么方案比較好的嗎?
    發(fā)表于 04-12 07:15

    在adc測量外部電壓時,為什么一旦加上led燈的代碼,程序就不行了?

    。但我注釋掉led燈相關(guān)的代碼,從串口中得到adc確實(shí)是在測量外部電壓值。只是為什么一旦加上led燈的代碼,程序就不行了?
    發(fā)表于 04-01 07:43

    市面上FPGA入門用哪塊板子好?。?/a>

    市面上FPGA入門用哪塊板子好?。坑玫氖裁撮_發(fā)軟件和編程語言的??
    發(fā)表于 03-30 11:24

    plc編程語言c語言的聯(lián)系 c語言和PLC有什么區(qū)別

    PLC編程語言C語言的聯(lián)系 PLC(可編程邏輯控制器)是一針對自動化控制系統(tǒng)的特殊計算機(jī)。P
    的頭像 發(fā)表于 02-05 14:21 ?3141次閱讀

    c語言,c++,java,python區(qū)別

    C語言、C++、Java和Python是四常見的編程語言,各有優(yōu)點(diǎn)和特點(diǎn)。
    的頭像 發(fā)表于 02-05 14:11 ?1363次閱讀

    vb語言c++語言的區(qū)別

    VB語言C++語言是兩不同的編程語言,雖然它們都屬于高級
    的頭像 發(fā)表于 02-01 10:20 ?1522次閱讀

    市面上常見的濾波器有哪些?

    市面上常見的濾波器有很多種類,它們被廣泛應(yīng)用于各種領(lǐng)域,包括通信、電子設(shè)備、音頻處理等。
    的頭像 發(fā)表于 01-23 18:26 ?1244次閱讀

    腳本語言編程語言的區(qū)別

    :腳本語言是一編程語言,其主要用途是編寫控制操作系統(tǒng)和應(yīng)用程序的腳本。腳本語言通常是解釋性的,這意味著它們在運(yùn)行之前不需要進(jìn)行編譯,而是由
    的頭像 發(fā)表于 11-22 14:33 ?2519次閱讀

    Python編程語言屬于什么語言

    Python編程語言屬于高級編程語言中的一。它是一通用、面向?qū)ο?、解釋?/div>
    的頭像 發(fā)表于 11-22 14:31 ?1144次閱讀

    C語言編程入門教程

    電子發(fā)燒友網(wǎng)站提供《C語言編程入門教程.rar》資料免費(fèi)下載
    發(fā)表于 11-20 10:23 ?8次下載
    <b class='flag-5'>C</b><b class='flag-5'>語言</b><b class='flag-5'>編程</b>入門教程

    C語言進(jìn)階之嵌入式系統(tǒng)高級C語言編程

    電子發(fā)燒友網(wǎng)站提供《C語言進(jìn)階之嵌入式系統(tǒng)高級C語言編程.rar》資料免費(fèi)下載
    發(fā)表于 11-18 10:32 ?1次下載
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>進(jìn)階之嵌入式系統(tǒng)高級<b class='flag-5'>C</b><b class='flag-5'>語言</b><b class='flag-5'>編程</b>