溫馨提示×

溫馨提示×

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

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

golang和c語言相似嗎

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

本文小編為大家詳細(xì)介紹“golang和c語言相似嗎”,內(nèi)容詳細(xì),步驟清晰,細(xì)節(jié)處理妥當(dāng),希望這篇“golang和c語言相似嗎”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學(xué)習(xí)新知識吧。

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

golang和c語言相似

Go(又稱 Golang)是 Google 的 Robert Griesemer,Rob Pike 及 Ken Thompson 開發(fā)的一種靜態(tài)強(qiáng)類型、編譯型語言。

Go語言被描述為“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 相近,且功能上有:內(nèi)存安全,GC(垃圾回收),結(jié)構(gòu)形態(tài)及 CSP-style 并發(fā)計(jì)算。

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

Go語言是云計(jì)算時(shí)代的C語言。Go語言的誕生是為了讓程序員有更高的生產(chǎn)效率,Go語言專門針對多處理器系統(tǒng)應(yīng)用程序的編程進(jìn)行了優(yōu)化,使用Go編譯的程序可以媲美C或C++代碼的速度,而且更加安全、支持并行進(jìn)程。

開發(fā)人員在為項(xiàng)目選擇語言時(shí),不得不在快速開發(fā)和性能之間做出選擇。C和C++這類語言提供了很快的執(zhí)行速度,而 Ruby 和 Python 這類語言則擅長快速開發(fā)。Go語言在這兩者間架起了橋梁,不僅提供了高性能的語言,同時(shí)也讓開發(fā)更快速。

golang和c語言的對比

1、代碼管理對比

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

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

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

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

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

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

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

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

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

2、關(guān)鍵字對比

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

12345678
ifelseswitchcasedefaultbreakreturngoto
dowhileforcontinuetypedefstructenumunion
charshortintlongfloatdoublevoidsizeof
signedunsignedconstautoregisterstaticexternvolatile

Go語言中一共有25個關(guān)鍵字

12345678
ifelseswitchcasedefaultbreakreturngoto
fallthroughforcontinuetypestructvarconstmap
funcinterfacerangeimportpackagedefergoselect
chan






3、數(shù)據(jù)類型對比

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

golang和c語言相似嗎

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

golang和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類型的整型

4、常量變量對比

C語言定義常量和變量格式

數(shù)據(jù)類型 變量名稱 = 值;
const 數(shù)據(jù)類型 常量名稱 = 值;

Go語言定義常量和變量格式

除了以下標(biāo)準(zhǔn)格式外,Go語言還提供了好幾種簡單的語法糖

var 變量名稱 數(shù)據(jù)類型 = 值;
const 變量名稱 數(shù)據(jù)類型 = 值;

讀到這里,這篇“golang和c語言相似嗎”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識點(diǎn)還需要大家自己動手實(shí)踐使用過才能領(lǐng)會,如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注億速云行業(yè)資訊頻道。

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

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

AI