A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

如题..预处理里的条件编译和条件语句的区别

5 个回复

倒序浏览
坐等大神来解答
回复 使用道具 举报
预处理里面的条件编译用的是伪指令,前面有个#,是 预处理程序预先对源码中的的宏定义进行判断和转换,处理完源代码后再交给编译器,常用指令有#define #undef #if #ifdef #endif 等,其作用是很大的,如果运用熟练能够合理的安排程序的整体布局;条件语句是用来判断语句的真假的,不能对宏定义进行判断
回复 使用道具 举报
预处理指令都是#开头,在代码编译前运行的代码。
条件编译(满足条件才编译):#if最后一定要写#endif
条件编译跟if语句写法上很像,只是条件编译#if() 括号里面的条件是与宏定义有关。

    #define A 10
    int main()
    {
    #if (A == 10)
        printf("a10\n"); // 条件满足,只编译这一句
    #elif (A == 5)
        printf("a5\n");
    #else
        printf("a其他值\n");
    #endif
        
    #ifdef A // 如果定义A宏,那么编译printf
   // #ifndef A // 如果没有定义A宏,那么编译printf
        printf();
}


if(条件1)
{
    语句1;
    语句2;
    ......
}
else if(条件2)
{
   
}
else
{
   
}

回复 使用道具 举报
这应该是两个不同的概念哈  比较起来感觉没什么意义
回复 使用道具 举报
预处理里面的条件编译用的是伪指令,条件预句是逻辑上的真假
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马