有人说"c 语言是跨平台支持相当好的一门语言,配合对应的编译器,在 arm 架构上运行是完全没有问题的"

2020-11-30 19:41:21 +08:00
 Neojoke

同志们,你们怎么看? 尤其是有 Linux-C 开发背景的伙伴们谈谈,说这句话的人算是我的一个朋友吧,我竟然不知道怎么回复他了。

5784 次点击
所在节点    C
54 条回复
ipwx
2020-11-30 19:44:56 +08:00
他说的没错
zhuangzhuang1988
2020-11-30 19:44:59 +08:00
dawn009
2020-11-30 19:49:19 +08:00
他说的没错。目前的操作系统几乎都可以视为 C 的运行时环境
weiqk
2020-11-30 19:50:42 +08:00
他说的没错
love
2020-11-30 19:50:46 +08:00
arm 的 os 不能用 C 语言那用啥?
iloveayu
2020-11-30 19:51:43 +08:00
这话说的无懈可击
cmostuor
2020-11-30 19:53:07 +08:00
@ipwx +1, 除了汇编和机器语言没见过不跨平台的语言, 高级语言基本上都是跨平台的.
yeqizhang
2020-11-30 19:53:42 +08:00
配合相应的编译器,go 的跨平台支持也相当的好吧
cmostuor
2020-11-30 19:55:24 +08:00
毫不夸张的的说现在文明的科技产品都是建立在 C 语言之上的
shayuvpn0001
2020-11-30 19:57:21 +08:00
@yeqizhang 嘿嘿,路由器里跑在一众 MIPS 处理器上的 C 代码想问问什么叫相当的好?还有一堆跑在 C51 处理器,PowerPC 处理器上的 C 代码。。。
dreasky
2020-11-30 19:57:28 +08:00
其他高级语言的解释器也是配合 c 写的,如果重头到尾都是纯 c 代码基本上跨平台都没什么问题,问题是用了二进制 lib 就难搞了
cyyzero
2020-11-30 20:01:18 +08:00
没毛病,新的平台出来时首先要移植的几乎都是 c 的 runtime 和编译器
bruce0
2020-11-30 20:01:36 +08:00
@yeqizhang go 的跨平台也支持的相当好,但是 go 有个问题,就是自带运行时,导致在一些低配(内存低)机器上,可能无法运行
Cielsky
2020-11-30 20:02:50 +08:00
显然
Mohanson
2020-11-30 20:12:41 +08:00
世界上只有两种语言,大部分语言是基于某个处理器做编译器,只有 c 语言,是处理器要基于 c 语言做设计。这不是玩笑话,我至少在 webassembly 和 riscv 文档上都看到过 “该指令集设计和优化初期只考虑 c 语言” 类似的话
icexin
2020-11-30 20:14:44 +08:00
看你这个朋友说的语境,如果一个 c 程序用的库都是跨平台的当然没问题,简单如 hello world 这种只用 libc 的程序,甚至能在单片机上编译运行。然而任何复杂的程序不可避免要跟操作系统进行交互,形如创建进程这样常见的 api 在 windows 和 linux 上都有很大的不同,更别说文件系统结构等其他复杂问题,在 cpu 指令方面还有字长和大小端等问题。因此很多高级语言,如 python,java 是通过一个强大的标准库来屏蔽这些差异。当然,如果你说的跨平台是指程序在对应的平台上有编译器那就另说了。
Mohanson
2020-11-30 20:15:17 +08:00
不过我估计楼主的真实意思其实是 "把 c 拿来写安卓 app"..., 否则楼主这问题真的欠打
nightwitch
2020-11-30 20:53:25 +08:00
说的没毛病。编程的历史分为 C 语言之前,和 C 语言之后。C 语言发明之后,你几乎找不到一个不支持 C 语言的平台了。
irytu
2020-11-30 20:54:12 +08:00
没毛病
jingslunt
2020-11-30 20:54:25 +08:00
完全没毛病,但却是贼麻烦的一个事情。每个二进制文件都需要这个对应的 arm 版本,非常折腾人。不如只需要替换 vm 的语言方便

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/730715

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX