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

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

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

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

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

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

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

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

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

© 2021 V2EX