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

2020 年 11 月 30 日
 Neojoke

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

6753 次点击
所在节点    C
54 条回复
phpIsNumberOne
2020 年 11 月 30 日
还有不支持 c 的?
Alan1994
2020 年 11 月 30 日
数典不能忘祖
Kellerman
2020 年 11 月 30 日
是这个意思吧
cmdOptionKana
2020 年 11 月 30 日
C 语言是支持,标准库也很可能几乎一样,但事实上软件代码基本上要重写…… 简单来说就是,支持语言不等于可以简单移植。与 Java 的一次编写到处运行也不一样。

其实你是被偷换概念了,“跨平台” 有很多层含义,你想问的是 **一个软件 /项目** 不修改或少量修改就能跨平台,但回答的是一个语言 /标准库跨平台。
joydragon
2020 年 11 月 30 日
没说错啊,你也可以说汇编是比 C 更跨平台的语言了~
wanguorui123
2020 年 11 月 30 日
主要是编译器,语言不是重点
jim9606
2020 年 11 月 30 日
因为任何的计算芯片,厂商至少都会做一个 C 编译器给用户用(连 AMD GCN 这种 GPU 都有),不然芯片没有人能用,别的语言可不保证这点。
虽然这并不能保证 C 的程序可以零成本移植(写 OS 绕不开少量平台特定的汇编,没有 C 标准库支持)
chinvo
2020 年 11 月 30 日
裸片开发 stm32 和 c51 都能用 C,但是谁说能无痛移植我打死谁
namelosw
2020 年 11 月 30 日
你有 source code 编译当然啥系统都可以, 但是闭源发行商可以选择不发 arm 的 binary, 或者疏于维护一直不发...
no1xsyzy
2020 年 12 月 1 日
@shayuvpn0001 挑选版本 go<1.0 (未自举,输出成 C 源代码
@joydragon 汇编不行,你得直接碰指令集,有些平台没有 movab,必须 movbw 再 movwb
xuanbg
2020 年 12 月 1 日
话虽然没毛病,但跨平台哪有说的这么简单。不说跨平台,就是简单移植到另一个平台都很不容易呢。
MeteorCat
2020 年 12 月 1 日
epoll,kqueue,iocp
x86
2020 年 12 月 1 日
跟“钱不是万能的”一样,你觉得有问题,但实际没毛病
wizardoz
2020 年 12 月 1 日
他说的没错。
前段时间引入了 C++,结果引入各种坑。主要是因为 GCC4 对 C++标准的支持不完整。
binux
2020 年 12 月 1 日
这话说得,你可以套用任何编程语言,甚至能够套在汇编上。只要你不用特定指令集,不调 system call 。
wangyzj
2020 年 12 月 1 日
没错
GM
2020 年 12 月 1 日
对“跨平台”的理解不一样罢了。
你理解的“跨平台”:像 java 一样,write once, run anywhere.
他理解的“跨平台”:*只*要*做好操作系统适配,在哪个操作系统上都能编译运行。
pigzzz
2020 年 12 月 1 日
现代的互联网都是架构在 c 语言上的,你说对不对
lijialong1313
2020 年 12 月 1 日
这算是非常正确的废话吧……
zjsxwc
2020 年 12 月 1 日
弱类型 + 最强跨平台特性

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

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

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

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

© 2021 V2EX