golang和c语言的区别是什么?下面给大家对比一下golang和c语言。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。
1、源文件对比
C语言源文件文件扩展名源类型.h头文件,存放代码声明
.cC语言源文件,存放代码实现
Go语言源文件文件扩展名源类型.goGo语言源文件,存放代码实现
2、代码管理对比
C语言中通过文件来管理代码
● 想使用某一个函数时,只需要include导入对应的.h文件即可
Go语言中通过包来管理代码
● Go语言没有.h文件的概念, 在Go中想使用某一个函数时, 只需要import导入对应的包即可
C语言中函数、变量公私有管理
● 通过extern和static实现是否公开函数和变量
Go语言中函数、变量公私有管理
● 通过函数名称首字母大小写实现是否公开函数
● 通过变量名称首字母大小写实现是否公开变量
3、关键字对比
C语言中一共有32个关键字12345678ifelseswitchcasedefaultbreakreturngoto
dowhileforcontinuetypedefstructenumunion
charshortintlongfloatdoublevoidsizeof
signedunsignedconstautoregisterstaticexternvolatile
Go语言中一共有25个关键字12345678ifelseswitchcasedefaultbreakreturngoto
fallthroughforcontinuetypestructvarconstmap
funcinterfacerangeimportpackagedefergoselect
chan
4、数据类型对比
C语言数据类型
Go语言数据类型
C语言各数据类型占用内存空间类型32位编译器64位编译器char11
int44
float44
double88
short22
long48
long long88
void*48
Go语言各数据类型占用内存空间类型32位编译器64位编译器本质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根据机器位数决定长度
uintptr48根据机器位数决定长度 uint32/uint64
float3244float
float6488double
true11char类型的整型
false11char类型的整型
5、常量变量对比
C语言定义常量和变量格式数据类型 变量名称 = 值;
const 数据类型 常量名称 = 值;
Go语言定义常量和变量格式
除了以下标准格式外,Go语言还提供了好几种简单的语法糖var 变量名称 数据类型 = 值;
const 变量名称 数据类型 = 值;
6、编程思想对比
C语言是一门面向过程的编程语言
面向过程: 按部就班, 亲力亲为,关注的是我应该怎么做?
做饭例子: 面向过程做饭
1.上街买菜
2.摘菜
3.洗菜
4.切菜
5.开火炒菜
6.淘米煮饭
7.吃饭
Go语言是一门面向对象的编程语言
面向对象:化繁为简, 能不自己干自己就不干,关注的是我应该让谁来做?
做饭例子: 面向对象做饭
1.找个会做饭女朋友 or 男朋友
2.老婆我饿了 or 老公我饿了
3.躺着...等她/他把饭做好
4.吃饭
不要把面向过程和面向对象想象得那么神奇, 它们只是思考问题的方式不同而已
更多go语言请关注go语言教程栏目。