繁体   English   中英

在c中输出以下代码宏

[英]Output of the following code- macros in c

对于以下代码,我将获得输出-极客。

#include <stdio.h>
#define ISEQUAL(X, Y) X == Y
int main()
{
    #if ISEQUAL(X, 0)
        printf("Geeks");
    #else
        printf("Quiz");
    #endif
    return 0;
}

解释这种输出的原因。

条件宏#if ISEQUAL(X, 0)扩展为#if X == 0 预处理结束后,所有未定义的宏均使用默认值0初始化。 由于尚未定义宏X ,因此将其初始化为0 因此,将打印“极客”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM