第31次课编译预处理命令位运算文件
第 31次课 编译预处理命令 位运算 文件
编译预处理命令----宏定义预处理命令是在编译之前,由预处理程序进行处理的一组命令。预处理命令均以开头,命令末尾不加分号。如#definePl3.1415926#include <stdio.h>
预处理命令是在编译之前,由预处理 程序进行处理的一组命令。 预处理命令均以#开头,命令末尾不 加分号。 如 #define PI 3.1415926 #include <stdio.h> 编译预处理命令-宏定义 1
编译预处理命令----宏定义例宏定义举例一、不带参数的宏定义#include <stdio.h>格式:#define PI 3.14159宏名替换文本#definemainO如 #define PI 3.1415926 float s,rv;scanf("%f",&r);功能:S=PI*r*r;系统预处理时,将用替换V=4.0/3*PI*r*r*r;文本替换程序中的所有宏名printf("%f%fln",s,v);(字符串中的宏名除外)
一、不带参数的宏定义 格式: #define 宏名 替换文本 如 #define PI 3.1415926 功能: 系统预处理时,将用替换 文本替换程序中的所有宏名 (字符串中的宏名除外) 。 例 宏定义举例 #include <stdio.h> #define PI 3.14159 main() { float s,r,v; scanf("%f",&r); s=PI*r*r; v=4.0/3*PI*r*r*r; printf("%f %f\n",s,v); } 编译预处理命令-宏定义 1
将每个形参及整个替换文本#include <stdio.h>用圆括号括起来。#define S(x,y) x*ymain()#include <stdio.h>float a,b,c;#define S(x,y) ((x)*(y))a=20; b=10;main()c=S(a+b,a-b);float a,b,c;printf(“ c=%fln” ,c); }a=20;b=10;替换过程为:c=S(a+b,a-b);S(a+b,a-b)→x*y → a+b*a-bprintf("c=%f/n",c);20+10*20-10→210宏替换是一种机械死板的替换
二、带参数的宏定义 格式: #define 宏名(形参表) 替 换文本 如 #define S(x,y) x*y 功能: 先用替换文本替换程序中 的宏名,再用实参替换形参。 #include <stdio.h> #define S(x,y) x*y main( ) { float a,b,c; a=20; b=10; c=S(a+b,a-b); printf(“c=%f\n” ,c); } 替换过程为: S(a+b,a-b)→x*y → a+b*a-b →20+10*20-10 →210 将每个形参及整个替换文本 用圆括号括起来。 #include <stdio.h> #define S(x,y) ((x)*(y)) main( ) { float a,b,c; a=20; b=10; c=S(a+b,a-b); printf("c=%f\n",c); } 宏替换是一种机械死板的替换
编译预处理命令--文件包含1、格式:<文件名》#include或”文件名”#include2、功能:系统预处理时,将用被包含文件的内容取代该include命令。如#include <stdio.h>
1、格式: #include <文件名> 或 #include "文件名" 2、功能: 系统预处理时,将用被包含文件的内容 取代该include命令 。 如 #include <stdio.h> 编译预处理命令-文件包含 2