java基础改学C++(四)预处理

//注意:预处理不是C++语言的组成部分。   预处理功能包括:(1)宏定义 (2)文件包含 (3)条件编译

 

先说文件包含:

//2     (2)文件包含

#include <iostream>

//  #include "iostream"

//这种常用在文件头部的被包含的文件称为 “头文件”

 头文件一般包含以下几类内容:

 (1) 对类型的声明。

 (2) 函数声明。

 (3) 内置(inline)函数的定义。

 (4) 宏定义。用#define定义的符号常量和用const声明的常变量。

 (5) 全局变量定义。

 (6) 外部变量声明。如entern int a;

 (7) 还可以根据需要包含其他头文件。

这些内容,只要有一个 “声明” 的概念就可以了,与声明(.h 文件)相对应的是 实现,一般是 .cpp 文件。

 

//1.1   (1)宏定义

#define a 10 a 只是用一个符号代替 10,在预编译时把所有符号常量替换为所指定的字符串,存粹是替换

//1.2   带参数的宏

 

#define S(a,b) a*b

//由于C++增加了内置函数(inline), 因此基本上已不再用#define命令定义带参数的宏了,主要用于条件编译中。

这种替换很容易就能想到,比如 S(1,2) 会被替换为 1*2

 

(3)条件编译    直接看程序demo

#define RUN

using namespace std

int main(int argc,constchar * argv[]) { 

#ifndef RUN //理解: if there is no definition of RUN,then:实际编译这段话

    cout<<S(10,23)<<endl;

#else    //理解:else:否则,编译下面这段话

    cout<<"123"<<endl;

#endif   //结束 if

// 与普通的 if else 语句不同的是,条件编译相当于,把代码删去了

    cout<<"What the fuck"<<endl;

    

//可以通过表达式判断是否编译,像普通的 if

#if 1

    cout<<123;

#else

    cout<<321;

#endif

    cout<<234;

    // #else 语句可以没有

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值