zoukankan      html  css  js  c++  java
  • 编译预处理指令:文件包含指令、宏定义指令、条件编译指令

    编译预处理指令:文件包含指令、宏定义指令、条件编译指令。“#”开头,不加分号“;”

    1、文件包含指令:
      #include<文件名> 标准目录下搜索
      #include"文件名" 当前目录下搜索,再在标准目录下搜索

    2、宏定义指令:
      #define 宏名 宏文本 //宏名习惯大写
      #undef 宏名 //删除宏

      空宏,#define PI //常与条件编译指令一起使用
      无参宏,#define PI 3.14 //常量表达式,PI=3.14
      有参宏,#define AREA(x) 3.14*x*x //多参数间用“,”隔开

    #include<iostream>
    #define AREA(x) 3.14*(x)*(x) //如果不加括号,出现3.14*3+7*3+7错误
    using namespace std;
    int main() {
        cout << AREA(3+7) << endl;
        return 0;
    }

    3、条件编译指令:可减少被编译的语句,提高效率。
      格式1:
      #ifdef 空宏名 //若空宏已经定义,则编译代码块1
        代码块1
      #else
        代码块2
      #endif

    格式2:常量表达式可以是包含宏、算术运算、逻辑运算等等的合法C常量表达式。结果不为0(为真),则编译代码块1
      #if 常量表达式
        代码块1
      #else
        代码块2
      #endif

    说明:#ifdef与#if的区别,#ifdef只判断宏是否被定义,而不关注其值。#if判断其值的真假(0假,非0真)。

    //格式1:
    #include<iostream>
    #define ENGLISH_VERSION //定义空宏,若此行被注释,执行中文代码块
    using namespace std;
    int main() {
    #ifdef ENGLISH_VERSION //空宏被定义,执行英文代码块
        cout << "Input a radius please:";
    #else //否则,执行中文代码块
        cout << "请输入圆的半径:";
    #endif 
        double r;
        cin >> r;
    #ifdef ENGLISH_VERSION
        cout << "Radius is " << r;
    #else
        cout << "半径是" << r;
    #endif 
        return 0;
    }
    //格式2:
    #include<iostream>
    #define ENGLISH_VERSION 0 //定义符号常量
    using namespace std;
    int main() {
    #if ENGLISH_VERSION //格式2,判断ENGLISH_VERSION是否为真
        cout << "Input a radius please:";
    #else //为假,执行中文代码块
        cout << "请输入圆的半径:";
    #endif 
        double r;
        cin >> r;
    #if ENGLISH_VERSION
        cout << "Radius is " << r;
    #else
        cout << "半径是" << r;
    #endif 
        return 0;
    }
  • 相关阅读:
    Recommended Books for Algo Trading in 2020
    Market Making is simpler than you think!
    Top Crypto Market Makers of 2020
    Top Crypto Market Makers, Rated and Reviewed
    爬取伯乐在线文章(五)itemloader
    爬取伯乐在线文章(四)将爬取结果保存到MySQL
    爬取伯乐在线文章(三)爬取所有页面的文章
    爬取伯乐在线文章(二)通过xpath提取源文件中需要的内容
    爬取伯乐在线文章(一)
    爬虫去重策略
  • 原文地址:https://www.cnblogs.com/xixixing/p/10145588.html
Copyright © 2011-2022 走看看