C++快速入门 (十六) 预编译处理命令

本文详细介绍了C++中的预编译处理命令,包括宏的用途、宏替换、条件编译,以及预处理命令如#include和#error。还探讨了预定义的ANSI和Microsoft相关宏,如__DATE__、__TIME__和__COUNTER__等。
摘要由CSDN通过智能技术生成

一 宏

(1). 宏的用途
C++中可以使用预处理命令创建宏。而宏的主要用途有,
  • 宏替换
  • 条件编译
(2). 宏替换
宏替换是指将代码中的字符,预处理时替换为指定字符串。 C++中使用预处理命令 #define 定义宏替换。其语法为:
  • #define <宏名>  <字符串>
  • #define <宏名> (<参数表>) <宏体>
C++中的宏替换是   将引用宏名的地方直接替换为其后的字符串,而不做其他处理。如下边的示例,其中 宏N只是用宏N定义的字符串 替换和填充了 N所在的位置,宏替换完成后其代码为 a = 2+2 * 2+2 = 8

#define H 2+2
void main()
{
    int a=N*N;
   cout << a << endl;  // 8
}



虽然有参数的宏看起来像函数调用,但其实质还是简单的字符替换,

#define  H(a,b) a+b

void main()
{
   cout << 8* H(3,5)  << endl;  // == 8 * 3+5
}


(3). 宏替换中的三个特殊符号
预处理命令 #define 中可以使用 3 个 特殊符号: #,##,#@
  • #x     表示使用双引号包围x
  • #@x  表示使用单引号包围x
  • x##y  表示连接两个参数, 如 12##34 = 1234
有了这三个特殊符号,使宏替换变得非常灵活。比如 我们要将某个变量名以字符串输出可以直接使用 含有 特殊符号# 的宏即可

#define      VARTOSTRING (n)  cout <<   #n" = " << n
....
int  num = 456;
VARTOSTRING (num);
// return: num = 456;


特殊符号 ##也很有用,比如有时需要使用宏将现有变量名替换为其他名称 ,这时就需要用到 特殊符号 ##,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值