【1】预处理语句是什么语句?
预处理语句最明显的标志是一些行首以#开始的特殊语句。
例如:#include,#define 等就是预处理语句。在程序的其它编译处理(词法分析、语法分析、代码生成、优化和连接等)之前,先进行这些语句的分析处理。
【2】预处理语句使用的目的?
目的在于帮助程序员编写出易读、易改、易移植并便于调试的程序。
【3】预处理语句主要有那些?
(1)宏定义和宏替换
(2)文件包含
(3)条件编译
(4)行控制
【4】预处理语句的作用范围?
从被定义语句开始直至被解除定义或是到包含它的文件结束为止均有效。
【5】各种预处理语句有何区别?
(1)宏定义
参照文章宏定义
(2)文件包含
文件包含是指一个程序文件将另一个指定文件的内容包含进来,用#include语句来声明。
#include <文件名> 第一种,用尖括号表示在标准库目录下找该文件;
#include "文件名" 第二种,用双引号表示先在当前用户目录(源文件所在目录)中找包含文件,若找不到,再到标准库目录中去找。
备注:系统的标准库文件都是.h文件。
常见的例如:
#include <stdio.h> /* 标准输入输出的基本常量和宏或函数文件 */
#include <string.h> /* 串函数文件 */
#include <malloc.h> /* 内存分配函数文件 */
#include <ctype.h> /* 字符函数文件 */
#include <math.h> /* 数学函数库文件 */
用文件包含,可以减少重复工作,提高程序正确性,还便于维护修改。
程序员可以把自己常用的一些符号常量、类型定义和带参数的宏定义,
以及一些常用自编函数都放在.h文件中,通过#include语句包含引用之。
(3)条件编译
提供条件编译措施使同一源程序可以根据不同编译条件(参数)产生不同的目录代码,其作用在于便于调试和移植。
条件编译控制语句有不同形式,下面分别讨论。
#ifdef语句及其使用
一般格式:
#ifdef 标识符
语句块1
#else
语句块2
#endif
(4)格式化输入/输出
格式化的控制台I/O函数有两种,它们都与标准I/O库有关。源程序开头应包含标准输入输出头文件:
#include<stdio.h>
<1>printf()
printf()函数功能为按指定格式输出显示各种基本类型数据,其一般格式:
printf(“控制串”,参数列表)
控制串分两部分,即:要显示的字符和格式串。格式串以“%”开头,后跟格式码。格式串与参数一一对应。
<2>scanf()
scanf()的功能是读入各种类型数据,并自动将其转换为恰当的格式,其一般格式为: scanf(“控制串”,参数列表)
控制串与前述printf()中的控制串类似,也包含有以“%”开头加格式码组成的格式串。
参数列表所列出的应当是变量的地址,而不是变量名。