预处理

1.内联函数:

在调用函数时,一般会增加系统开销,如:参数传递、跳转控制、返回结果等额外操作都需要系统内存和执行时间


内联:在函数调用时使用函数体替换,因此会增加空间开销,而在时间上不像一般函数调用时那么大

inline in add(int x,int y){

................

}

 

注意几点;

(1)不含有循环语句和开关语句

(2)内联函数的定义必须出现内联函数第一次被调用之前

2.产生错误信息命令:#error    --------强制编译器停止编译,并输出一个错误信息,主要用于程序调试

#error  错误信息

注意:错误信息不用双引号括起来

3.修改编译器设置命令:#pragma


4重置行号和文件命令:#line

#line  number  "filename"

5.预定义宏名

_ _ DATE_ _:当前源程序的创建日期;

_ _FILE_ _:当前源程序的文件名称(包括盘符和路径)

_ _LINE_ _:当前被编译代码的行号;

_ _STDC_ _:返回编译器是否巍峨标准C,若其值为1表示符合标准C,否则不是标准C 

_ _TIME_ _:当前源程序的创建时间;

             

6.文件包含指令

#include<  >

#include"   " 


7.条件编译指令  --------用于对于源代码的各部分有选择地进行编译。采用条件编译,可以提高程序的适用性,缩小目标代码的大小

也可以使用条件编译使程序的移植更加方便

(1)#if、#else、#endif命令

#if  常量表达式

程序段1

#else

  程序段2

#endif

 (2)#elif

#if  常量表达式1

程序段1

#elif 常量表达式2

  程序段2

....

#elif 常量表达式n

  程序段n

#else

程序段m

#endif

可以嵌套,可用于程序调试

************************************************************************************************************************************************************************************

#define OS WIN
#if OS==WIN
#include"win.h"
#elif OS==LINUX
#include"linux.h"
#elif OS==MAC
#include"mac.h"
#endif

(3)#ifdef、#ifndef命令


(4)使用#difined和#undef

#if defined 标识符

#if ! define 标识符


8.宏定义:

(1)无参数宏定义:


(2)有参数宏定义

#define 宏名(形参表)   字符串

#define FUN (A,B)    2*A*B

y=FUN(3,5);

则相当于;

y=2*3*5;

9.#undef命令


10.预处理操作符#和##

(1)#    --------可以使用操作符#在字符串中输出参数实参

#define AREA(X,Y)   printf("长为"#x",宽为"#y"的长方型的面积:%d\n",(x)*(y));

可以如下使用:

int i=3,j=5;

AREA(i,j);

输出结果: 长为i,宽为j的长方型的面积:15


2.操作符##  -------可以用来在带参数宏中替换部分内容

#define  FUNC(n)   oper##n

预处理后:

oper1

********************************************************************************************

#include<stdio.h>
#include<stdlib.h>
#define FUNC(n)   oper##n
int oper1(int ,int);
int oper2(int ,int);
int main()
{
int a,b,r;
printf("输入两个参加运算的两个数:") ;
scanf("%d%d",&a,&b) ;
r=FUNC(1)(a,b);
printf("加运算结果:%d\n",r);
r=FUNC(2)(a,b);
printf("减运算结果:%d\n",r);
return 0;

}
int oper1(int a,int b)
{
return a+b;
}
int oper2(int a,int b)
{
return a-b;
}













 

   

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值