黑马程序员技术交流社区

标题: 请问下预处理里的条件编译和条件语句的区别 [打印本页]

作者: 王振宇351x    时间: 2014-8-31 14:46
标题: 请问下预处理里的条件编译和条件语句的区别
如题..预处理里的条件编译和条件语句的区别
作者: 黑马黄武先    时间: 2014-8-31 15:33
坐等大神来解答
作者: himym2005    时间: 2014-8-31 15:59
预处理里面的条件编译用的是伪指令,前面有个#,是 预处理程序预先对源码中的的宏定义进行判断和转换,处理完源代码后再交给编译器,常用指令有#define #undef #if #ifdef #endif 等,其作用是很大的,如果运用熟练能够合理的安排程序的整体布局;条件语句是用来判断语句的真假的,不能对宏定义进行判断
作者: 泠风小和    时间: 2014-8-31 18:38
预处理指令都是#开头,在代码编译前运行的代码。
条件编译(满足条件才编译):#if最后一定要写#endif
条件编译跟if语句写法上很像,只是条件编译#if() 括号里面的条件是与宏定义有关。
你可以看看这个:http://bbs.itheima.com/thread-140705-1-1.html

    #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
{
   
}


作者: 周易    时间: 2014-8-31 19:06
这应该是两个不同的概念哈  比较起来感觉没什么意义
作者: ❤如止水之絕境    时间: 2014-8-31 23:06
预处理里面的条件编译用的是伪指令,条件预句是逻辑上的真假




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2