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

2020 年 11 月 30 日
 Neojoke

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

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

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

https://study.congcong.us/t/730715

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

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

© 2021 V2EX