在 32 位和 64 位 Mac 上创建 hello world

标签 c

在 32 位和 64 位 Mac 机器上创建 hello world 有什么区别? 它会是什么样子?我确实安装了 Xcode 和 gcc,但在终端中运行时 gcc 给出了 64 位错误!?没有尝试 Xcode IDE,因为不知道从哪里开始使用 hello world! 谢谢。

最佳答案

what is the difference of creating hello world on 32 vs 64 on Mac machine?

没有。无论是针对 32 位还是 64 位体系结构,编写良好且符合标准的代码都不应该有任何不同。对于简单的和复杂的程序来说都是如此,并且非常有用,因为它允许您维护用于编译两种类型的可执行文件的单个代码库。目标架构之间的切换应该像翻转编译器开关一样简单。

只有当您正在做一些特别深奥的事情时,您才需要为不同的“位数”维护不同的代码。在这种情况下,你会看到这样的丑陋:

#ifdef __LP64__
  // 64-bit code
#else
  // 32-bit code
#endif

gcc gives me 64 bit error while running in the terminal!?

由于您既没有发布 1) 您实际尝试过的代码,也没有发布 2) 编译器生成的确切错误,所以我们真正能做的就是猜测。

假设您的代码在编译为 32 位时可以正常工作,我的猜测是以下两件事之一是正确的:

  1. 您做出了一个不可移植的假设,该假设在 32 位体系结构上是正确的,但在 64 位体系结构上是错误的。不知道它是什么,但编译器应该告诉你。注意它的警告并修复您的代码(或者如果绝对必要的话有条件地保护它,如上所示)。

  2. 您的 Mac 是较旧型号,配备 32 位处理器,不支持 64 位。如果您拥有正确版本的编译器,则可以在 32 位处理器上编译 64 位代码,但您无法执行该代码。它只能在 64 位处理器上执行。

Did not try Xcode IDE since don't know where to start with the hello world!

这完全合理。 Xcode 不会在这里帮助你。您关注两件事:1)您编写的代码,2)编译器生成的错误。终端可以让您轻松访问这两个内容。

但是,如果您不习惯使用命令行工作,那么安装和使用 IDE 也没什么坏处。您的目标是学习如何对计算机进行编程,而不是炫耀您能够使用终端的极客信誉。如果 GUI 可以让您更轻松地阅读和理解正在发生的事情,那么就使用它。

关于在 32 位和 64 位 Mac 上创建 hello world,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16027863/

相关文章:

c - 从键盘上介绍一些学生和他们的分数

c - 验证 MAC 地址

c - HTTP代理实现: content encoding error

c - malloc 的每个现代实现都会在程序中引入 UB 吗?

c - 系统中创建线程时如何收到通知

c - 在C中使用指针交换两个数字

c - 将字符存储在字符串变量中

c - 传递指针的值

c# - 使用 PInvoke 连接 C/C++ DLL 的调试断言失败

c - 如何分配1位值?