C++ 预编译指令

预编译指令以“#”开始,且一般都在一行的顶格写起(不是必须的),行尾不需要分号。
    预编译指令为文件作用域,即其作用范围仅在其所在的文件中(头文件中的预编译指令将在所有包含该头文件的文件中有效)

1、#include:将某个文件的内容读进来。
    有两种形式:#include <filename.h>与#include "filename.h",
    前者表示filename.h为标准头文件,预编译器将在预定义一些位置寻找该头文件;后者表示filename.h为用户自定义的头文件,预编译器将在包含该指令的文件所在的位置开始查找该头文件。

2、#ifdef    #ifndef    #define    #endif
    #ifdef DEBUG   // 测试DEBUG是否已经定义
    #ifndef DEBUG // 测试DEBUG是否没有定义
    #define             // 定义DEBUG
    #endif                // #ifdef或者#ifndef语句结束

    C++中,定义头文件时,为了避免头文件被多次引用而造成的重复定义,需要将整个头文件内容包含在下面的预编译指令中(假设头文件为file.h):
    #ifndef FILE_H
    #define FILE_H
    // 头文件的内容
    #endif

3、常见的预编译常量
    __plusplus     // 编译C++程序时编译器自动定义
    __STDC__    // 编译C程序时编译器自动定义
    __FILE__      // 当前编译的文件名
    __LINE__      // 当前编译文件的当前行
    __DATE__    // 编译文件时的日期
    __TIME__     // 编译文件时的时间
  
    其中,__FILE__与__LINE__在编译期间是不断更新的,其他四个变量在编译期间固定。

4、assert()
    C语言定义的预编译宏,断言某个表达式为true;若为false,则抛出异常。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值