已关闭。此问题需要更多focused。当前不接受答案。
**想要改进此问题吗?**更新问题,使其仅关注editing this post的一个问题。
八年前就关门了。
Improve this question
我的朋友说,可以编写一个C程序,打印“hello world”,不带IF/WHILE/FOR
,也不带分号。经过少量的研究,我告诉她这是不可能的。这可能吗?
已关闭。此问题需要更多focused。当前不接受答案。
**想要改进此问题吗?**更新问题,使其仅关注editing this post的一个问题。
八年前就关门了。
Improve this question
我的朋友说,可以编写一个C程序,打印“hello world”,不带IF/WHILE/FOR
,也不带分号。经过少量的研究,我告诉她这是不可能的。这可能吗?
7条答案
按热度按时间t40tm48m1#
如果你的朋友说“哦,你也不能使用switch”,那么:
dvtswwa32#
我一直在尝试找到一种“可移植”的方法来从include文件中窃取分号。
这使得
typedef unsigned char uint8_t
成为我的printf。另一个有效的技巧是
#define
去掉所有标准的stdint类型,这样stdint.h
就简化为一堆分号。这两种方法在FreeBSD上都不适用,因为它使用私有中间类型(如
__uint8_t
),这意味着在引用的例子中删除typedef失败,并阻止我在其他情况下成功删除所有非分号。看起来应该可以从包含文件中干净地窃取分号。有人能改进我的尝试吗?
wnavrhmk3#
我很纠结是否要提出这个建议,因为这取决于问题的确切措辞,但是:
(if没有别的,也许它会避免后续的“没有
main
你怎么打印Hello World“...)qqrboqgw4#
可以编写一个不带IF/WHILE/FOR和分号打印“hello world”的C程序。
简单。注意C是区分大小写的。
if
是C语言中的关键字,而IF
不是。hkmswyz65#
您还可以解决此限制,例如
w3nuxt5m6#
关于:
不是很酷:)
gmol16397#
您可以使用switch语句来获得所需的输出,下面是代码
我希望这对你有帮助