在C程序中帮助if-else

Rit*_*tik 4 c

可能重复:
C面试问题中的"条件"是什么?

void main()
{
         if(CONDITION)
               printf("Hello ");
         else
               printf("World");
}
Run Code Online (Sandbox Code Playgroud)

用这样的条件替换CONDITION,即执行printf语句.你不能在main()中有一个循环或其他东西我在网上找到了这个代码,我试图思考它背后的逻辑,但我不能.请帮帮我谢谢

rub*_*ots 35

 if(fork() == 0)
    ...
Run Code Online (Sandbox Code Playgroud)

  • 您可以通过使条件`!fork()||来修复排序问题 !等待(NULL)` (3认同)
  • 这里有一个竞争条件,因为你不知道哪个printf会先被执行,但是规则只是说"两个printf语句都被执行了",对顺序没有任何限制,所以它看起来不错. (2认同)

x4u*_*x4u 20

虽然我真的很喜欢答案背后的想法,但rubber boots我认为可能会有更简单的答案.描述明确指出你可能没有main()内的代码,但在外面有一个额外的行呢?

#define else

void main()
{
     if(1)
           printf("Hello ");
     else
           printf("World");
}
Run Code Online (Sandbox Code Playgroud)

更新此处是Zan Lynx评论中建议的替代方案.它只在CONDITION周围的括号之间添加代码:

void main()
{
     if(1
#define else
       )
           printf("Hello ");
     else
           printf("World");
}
Run Code Online (Sandbox Code Playgroud)

  • +1是邪恶的.我喜欢. (4认同)
  • 您甚至可以这样做,同时尊重您只修改CONDITION.设置CONDITION等于换行符,#define other,换行符,1 (3认同)