C语言基础(十)- 预处理
来源:互联网 发布:电脑硬盘加密软件 编辑:程序博客网 时间:2024/05/29 12:29
预处理就是在编译之前所做的事情,所以也叫预编译,主要有宏定义、文件包含处理和条件编译。
宏定义
宏定义指令是指用一个指定的标识符代表一个字符串,可以减少程序中重复书写某些字符串的工作量,使用宏可以达到“一改全改”的代码规范。
宏定义主要分为不带参数的宏定义 和 带参数的宏定义。
//不带参数的宏定义# define N 10# define PI 3.14# define R 2*N*N//带参数的宏定义# define S(a,b) a*b //程序中出现的S(a,b)与a*b等价/*** 宏定义测试*/# include <stdio.h># define PI 3.14# define CIRCLE(R,L,S) L=2*PI*R;S=PI*R*R;int main() { float r = 10; float l,s; CIRCLE(r, l, s); printf("圆的周长和面积为:%lf,%lf\n", l, s); return 0;}//正常情况下宏的作用范围从定义开始到文件结束//使用#undef命令可以提前取消宏定义# undef N# undef PI# undef CIRCLE(R,L,S)
文件包含处理
文件包含处理的说明:
- 一个 #include 命令只能包含一个被包含的文件,如果要包含n个文件,要用n个 #include 指令
- 如果文件1包含文件2,而在文件2中要用到文件3的内容,那么在file1.cpp中对包含文件出现的顺序为 #include
ctype.h 包含测试字符的函数local.h 包含地区化的函数math.h 包含数学函数string.h 包含字符串函数stdio.h 包含标准输入输出函数stdlib.h 包含常用的系统函数time.h 包含时间和日期函数signal.h 包含信号有关的函数malloc.h 包含动态内存函数
条件编译
- #ifdef //如果已定义宏
- #ifndef //如果未定义宏
- #if //当比爱哦大师为真时就编译程序段1,否则就编译程序段2
/*** 测试 #ifdef/#ifndef*/# define CHINESE 1# ifdef CHINESE# include "chinese.h"# else# include "english.h"# endifint main() { //... return 0;}/*** 测试 #if*/# include <stdio.h># define LETTER 1int main() { char c, str[] = "I love C Language!"; int i = 0; while ((c=str[i])!='\0') { i++; #if LETTER if (c>='a' && c<='z') { c = c-32; } #else if (c>='A' && c<='Z') { c = c+32; } #endif printf("%c", c); } printf("\n"); return 0;}
0 0
- C语言基础(十)- 预处理
- C语言基础 预处理指令
- c语言基础--预处理指令
- C语言(预处理)
- C 基础 (预处理)
- C语言基础:预处理指令(补充内容:递归)
- IOS学习---C语言基础学习7(预处理指令)
- c语言基础 (5) 预处理命令
- C语言基础——预处理指令
- C语言基础之预处理指令
- C语言基础——预处理
- 黑马程序员-----------C语言基础-----------预处理指令
- C语言基础-预处理指令25
- C语言基础(十)文件的操作
- C语言基础四_预处理和变量类型
- 黑马程序员_iOS开发C语言基础之预处理命令
- 黑马程序员---iOS基础---C语言中的预处理命令
- 黑马程序员——C语言基础---预处理指令
- POj 1019 number sequence(数学)
- 安捷伦示波器的游戏
- redux介绍
- WebAPI GET和POST请求的几种方式
- 自定义NSLog宏输出
- C语言基础(十)- 预处理
- MySQL锁定状态查看命令
- mac终端Iterm2支持rz和sz的解决方案
- VS调试 不会命中断点,源代码与原始版本不同的解决办法
- Map的比较与遍历
- C语言基础(十一)- 文件和目录操作运算
- 3.1 HTTP报文的结构及各部分的介绍
- vs2015没有"安装与部署"选项
- 数据库备份与恢复