preprocess

1,宏定义,有参宏,无参宏,宏定义实现的是定义一个符号常量;

条件编译3种方式,文件包含含义;

不带参数的宏定义;既用一个指定的的标识符来代替一个字符串;
#define RUIY 10000000
把标识符定义为字符串,在进行编译预处理时,编译系统就能把程序中出现的标识符用字符串去替代,然后再对预处理后的程序进行编译;
与typedef 给系统中已存在的数据类型重新定义别名类似,但是是有区别的;
typedef  char * String;
使用不带参数的宏定义

#include <stdio.h>
#define PI 3.1415926

int main(){
  float s,r,v,l;
  printf("Please input radius longs:");
  scanf("%f",&r);
  
}

2,宏名一般用大写,以便于变量加以区别;

使用宏名代替字符串可以提高程序的运行效率

宏名语句后不加分号;以便于通常的C语句区别开来;

宏名定义的有效范围为从定义处起到源程序文件的末尾;

可用#undef终止宏定义的作用范围 ;

在进行宏定义时可引用以定义的宏名;

对程序中用用双引号括起来的标识符在预处理时不作字符替换,

宏定义只作字符替换,预处理时不分配内存;

 

void main()
{
  printf("l=%10.4\nv=%10.4\ns=%10.4\n");
}

5,带参数的宏定义

带参数的宏定义不只是简单的字符替换,还要进行参数替换;
一般定义形式:
#define 宏名标识符(参数列表) 字符串

 6,条件编译

6,#if

#if condition
  code;
#elif require
  code;
#else
  code;
#endif

条件编译分别可以实现:

1,代码注释,2,宏名定义判断,3,宏变量值;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值