溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

go和c語言一樣嗎

發(fā)布時(shí)間:2022-12-07 09:40:01 來源:億速云 閱讀:184 作者:iii 欄目:編程語言

這篇文章主要講解了“go和c語言一樣嗎”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“go和c語言一樣嗎”吧!

go和c語言接近。go是一種類C的高級(jí)語言,被描述為“C類似語言”,或者是“21世紀(jì)的C語言”。Go從C語言繼承了相似的表達(dá)式語法、控制流結(jié)構(gòu)、基礎(chǔ)數(shù)據(jù)類型、調(diào)用參數(shù)傳值、指針等很多思想,還有C語言一直所看中的編譯后機(jī)器碼的運(yùn)行效率以及和現(xiàn)有操作系統(tǒng)的無縫適配。

go和c語言接近。

Go語言是一種類C的高級(jí)語言

Go語言(或 Golang)起源于 2007 年,并在 2009 年正式對(duì)外發(fā)布。Go 是非常年輕的一門語言,它的主要目標(biāo)是“兼具 Python 等動(dòng)態(tài)語言的開發(fā)速度和 C/C++ 等編譯型語言的性能與安全性”。

Go語言是一個(gè)跟C語言,C++語言,Python,Java類似的計(jì)算機(jī)編程語言。

Go語言有時(shí)候被描述為“C 類似語言”,或者是“21 世紀(jì)的C語言”。Go 從C語言繼承了相似的表達(dá)式語法、控制流結(jié)構(gòu)、基礎(chǔ)數(shù)據(jù)類型、調(diào)用參數(shù)傳值、指針等很多思想,還有C語言一直所看中的編譯后機(jī)器碼的運(yùn)行效率以及和現(xiàn)有操作系統(tǒng)的無縫適配。

Go語言是編程語言設(shè)計(jì)的又一次嘗試,是對(duì)類C語言的重大改進(jìn),它不但能讓你訪問底層操作系統(tǒng),還提供了強(qiáng)大的網(wǎng)絡(luò)編程和并發(fā)編程支持。Go語言的用途眾多,可以進(jìn)行網(wǎng)絡(luò)編程、系統(tǒng)編程、并發(fā)編程、分布式編程。

Go語言和C語言的區(qū)別

Go的語法接近C語言,但對(duì)于變量的聲明有所不同。Go支持垃圾回收功能。Go的并行模型是以東尼·霍爾的通信順序進(jìn)程(CSP)為基礎(chǔ),采取類似模型的其他語言包括Occam和Limbo,但它也具有Pi運(yùn)算的特征,比如通道傳輸。在1.8版本中開放插件(Plugin)的支持,這意味著現(xiàn)在能從Go中動(dòng)態(tài)加載部分函數(shù)。

源文件對(duì)比

  • C語言源文件

文件擴(kuò)展名源類型
.h頭文件,存放代碼聲明
.cC語言源文件,存放代碼實(shí)現(xiàn)
  • Go語言源文件

文件擴(kuò)展名源類型
.goGo語言源文件,存放代碼實(shí)現(xiàn)

代碼管理對(duì)比

  • C語言中通過文件來管理代碼

    • 想使用某一個(gè)函數(shù)時(shí),只需要include導(dǎo)入對(duì)應(yīng)的.h文件即可

  • Go語言中通過包來管理代碼

    • Go語言沒有.h文件的概念, 在Go中想使用某一個(gè)函數(shù)時(shí), 只需要import導(dǎo)入對(duì)應(yīng)的包即可

  • C語言中函數(shù)、變量公私有管理

    • 通過extern和static實(shí)現(xiàn)是否公開函數(shù)和變量

  • Go語言中函數(shù)、變量公私有管理

    • 通過函數(shù)名稱首字母大小寫實(shí)現(xiàn)是否公開函數(shù)

    • 通過變量名稱首字母大小寫實(shí)現(xiàn)是否公開變量

關(guān)鍵字對(duì)比

  • C語言中一共有32個(gè)關(guān)鍵字

12345678
ifelseswitchcasedefaultbreakreturngoto
dowhileforcontinuetypedefstructenumunion
charshortintlongfloatdoublevoidsizeof
signedunsignedconstautoregisterstaticexternvolatile
  • Go語言中一共有25個(gè)關(guān)鍵字

12345678
ifelseswitchcasedefaultbreakreturngoto
fallthroughforcontinuetypestructvarconstmap
funcinterfacerangeimportpackagedefergoselect
chan






數(shù)據(jù)類型對(duì)比

  • C語言數(shù)據(jù)類型

    go和c語言一樣嗎

  • Go語言數(shù)據(jù)類型

    go和c語言一樣嗎

  • C語言各數(shù)據(jù)類型占用內(nèi)存空間

    類型32位編譯器64位編譯器
    char11
    int44
    float44
    double88
    short22
    long48
    long long88
    void*48
    • Go語言各數(shù)據(jù)類型占用內(nèi)存空間

    類型32位編譯器64位編譯器本質(zhì)
    int8/uint811signed char/unsigned char
    int16/uint1622signed short/unsigned short
    int32/uint3244signed int/unsigned int
    int64/uint6488signed long long int/unsigned long long int
    byte11uint8/unsigned char
    rune44int32/signed int
    int48根據(jù)機(jī)器位數(shù)決定長度
    uintptr48根據(jù)機(jī)器位數(shù)決定長度 uint32/uint64
    float3244float
    float6488double
    true11char類型的整型
    false11char類型的整型

    注釋對(duì)比

    • 和C語言一樣,Go語言也支持單行注釋和多行注釋, 并且所有注釋的特性都和C語言一樣

      • 單行注釋 // 被注釋內(nèi)容

      • 多行注釋 /* 被注釋內(nèi)容*/

    • 在Go語言中,官方更加推薦使用單行注釋,而非多行注釋(詳情可以直接查看Go官方源碼)

    感謝各位的閱讀,以上就是“go和c語言一樣嗎”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)go和c語言一樣嗎這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

    向AI問一下細(xì)節(jié)

    免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

    AI