预处理命令

1、宏定义

1.1无参数宏

无参数宏定义的一般形式为:

#define 标识符字符串

define _m 1+2+3+4+5

#ifndef _m

printf("%d",_m);

“#”代表本行是编译预处理命令。defined是宏定义的关键字,标识符是宏名。字符串是宏明所代替的内容,可以是常数、表达式等。

1.2有参数宏

一般形式为:

#define 标识符(形参表)字符串

#define _m(a) (1+a)

printf("%d",_m(1)*_m(2));

文件包含

文件包含是指把指定源文件的全部内容包括到当前源程序文件中。

文件包含命令的一般形式为:

#include "文件名" 或 #include <文件名>

#include"stdio.h"

#include"math,h"

条件编译

条件编译是指在特定的条件下,对满足条件和不满足条件的情况分别进行处理——满足条件是编译某些句子,不满足条件时编译另一些语句。

条件编译指令常用于程序的移植等方面,与系统编译环境相关。在编译前先对系统环境进行判断,在进行相应的语句编译。

#if指令的形式为:

#if 常量表达式
代码块
#endif
#if后面的常量表达式为值,则编译它与#endif之间的代码,否则跳过这些代码。指令#endif标识一个#if块的结束。
#else被使用来标志#if的末尾和#else块的开始。这是必须的,因为任何#if仅有一个#endif与之关联。


#elif意指"else if",它形成一个if else if嵌套语句用于多种编译选择。#elif后面跟一个常量表达式,如果表达式是真,则编译其后的代码块,不对其他#elif表达式进行检测,否则顺序测试下一块。常见的形式如下:

形式1:

#ifdef 标识符
/*程序段 1*/
#else
/*程序段 2*/
#endif
它的作用是当标识符已经由#define定义过了,则编译程序段1,否则编译程序段2,也可以使用简单形式
   #ifdef 标识符
  /*程序段1*/
   #endif 

形式2:

   #ifndef 标识符
  #define 标识符
  /*程序段 1*/
  #else
  /*程序段 2*/
  #endif

  它的作用是当标识符没有由#define定义过,则编译程序段1,否则编译程序段2 ,也可以使用简单形式
   #ifndef 标识符
  #define 标识符
  /*程序段 1*/
  # endif

形式3:

#if 表达式
 /*程序段 1*/
 #else
 *程序段 2*/
 # endif

  它的作用是 当“表达式”值为真时编译程序段1。否则则编译程序段2,也可以使用简单形式

# if 表达式
/*程序段 1*/
# endif

形式4:

    #if 表达式1
    /*程序段 1*/
    #elif 表达式2
    /*程序段 2*/
    ............
    #elif 表达式n
    /*程序段n */
    #endif
    它的作用是当“表达式1”值为1时编译程序段1,表达式2的值为真是编译程序段2,否则依次顺序判断到表达式n。


  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值