预处理功能描述:
源程序中可能包含有对程序执行无意义的符号,要求将其剔除。
首先编制一个源程序的输入过程,从键盘、文件或文本框输入若干行语句,依次存入输入缓冲区(字符型数据);然后编制一个预处理子程序,去掉输入串中的回车符、换行符和跳格符等编辑性文字;把多个空白符合并为一个;去掉注释。
状态转换图:
0 :初态
1:读入空格
2:读入 '/'
3:读入其他字符
4:读入 "//" 单行注释
5:读入 "/*" 多行开始注释

上图中:状态5在Dev c++ 中不能是终态,其他编译器未知。
代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
FILE *fp; // 文件指针,处理源文件
char *ScanBuffer; // 扫描缓冲区,一分为二,每次一半存放预处理后的字符串
int capacity; // 扫描缓冲区容量
int BufferFlag; // 状态标志,0 表示使用缓冲区的左半区,1 表示使用右半区

&spm=1001.2101.3001.5002&articleId=101601162&d=1&t=3&u=94a0f944109b411a8ca70780d972653c)
4355

被折叠的 条评论
为什么被折叠?



