【发布时间】:2018-12-22 22:56:19
【问题描述】:
我最近在使用朋友 2017 MacBook Pro,运行 macOS High Sierra,为 Mac OSX 编译了 Code::Blocks 13.12。 (因为 Macintosh 版本自 2013 年以来未更新)。
在设置 Code::Blocks 时,macOS 需要从 Xcode 控制台工具安装 GCC,这是有道理的,但是当我开始在 Code::Blocks 中使用 while(true) 循环创建标准 C 控制台应用程序时。我得到一个错误,“true”在上下文中不起作用,但“free”这个词起作用了。果然,'while(free)' 确实可以运行和编译。
我尝试在谷歌上搜索免费是什么的解释,但似乎我是地球上唯一发现这种差异的人。 'free' 是 mac 特定的布尔变量吗,如果是,它的对立面是什么,它仍然是 'false' 吗?
任何答案将不胜感激。
【问题讨论】:
-
有人建议
while (free),还是你随便选了一个词……? -
这是我在尝试使用 'while(true)' 进行编译时收到的编译错误,我希望我能截取它的屏幕截图,我可能从现在开始的一天。
-
编译器可能在 spelling 中检测到“free”最接近“true”,但这绝对不意味着您应该使用它。
while (1)或for (;;)是正确的。 -
这个“X 没有被声明,也许你的意思是 Y?” GCC的特性没有复杂的逻辑。它只是查找名称与您使用的名称相似的标识。 GCC 建议
while (free)只是因为它不知道true是什么,而free听起来足够相似。一般来说,GCC 提出的建议不一定能编译或正常工作。 -
@DanielH 可能。执行无限循环的经典 C 惯用方法是
for (;;)。
标签: c macos while-loop boolean codeblocks