zoukankan      html  css  js  c++  java
  • 思考题3:介绍一种C/CPP的语言的语法、标准库

    摘自:#if、if、#ifdef、#if defined之间的区别
    下面是这篇文章的部分内容:
    1.条件编译是C语言中预处理部分的内容,它是编译器编译代码时最先处理的部分,
    条件编译里面有判断语句,比如 #if 、#else 、#elif 及 #endif
    它的意思是如果宏条件符合,编译器就编译这段代码,否则,编译器就忽略这段代码而不编译
    而 if 语句则不然,if 是 C 语言中的关键字,它根据表达式的计算结果来决定执行那个语句,它里面的每个分支都编译了的
    如果你的条件在程序编译前就已经确定了,那就用#if;如果条件需要在程序运行过程中才能判断,则用if。
    所以简单地讲,条件编译是根据 宏条件 选择性地编译语句,它是编译器在编译代码时完成的;
    条件语句是根据条件表达式选择性地执行语句,它是在程序运行时进行的
    2.#if的使用说明

    if的后面接的是表达式

    if (MAX10)||(MAX20)

    code...

    endif

    它的作用是:如果(MAX10)||(MAX20)成立,那么编译器就会把其中的#if 与 #endif之间的代码编译进去(注意:是编译进去,不是执行!!)
    3.#if defined的使用:

    if后面接的是一个宏。

    if defined (x)

    ...code...
    

    endif

    这个#if defined它不管里面的“x”的逻辑是“真”还是“假”它只管这个程序的前面的宏定义里面有没有定义“x”这个宏,如果定义了x个宏,那么,编译器会编译中间的…code…否则不直接忽视中间的…code…代码。
    另外 #if defined(x)也可以取反,也就用 #if !defined(x)
    4.#ifdef的使用:

    ifdef的使用和#if defined()的用法一致

    ifndef又和#if !defined()的用法一致。

    (这字体不知道为啥发布出去大小不一,没搜到怎么改,求教)

  • 相关阅读:
    关于jabber协议
    xmpp相关链接,
    Implementation of the Server Dialback method as defined by the RFC3920
    好吧,隐藏的文件,
    Vue之methods watch和compute的区别和联系
    面向过程编程&面向对象编程
    JS高阶---线程与事件机制(小结)
    Vuex简介
    Vuex操作步骤
    vue单页面应用刷新网页后vuex的state数据丢失的解决方案
  • 原文地址:https://www.cnblogs.com/2002ljy/p/12231412.html
Copyright © 2011-2022 走看看