
词法分析
文章平均质量分 75
Godsight
这个作者很懒,什么都没留下…
展开
-
C语言动态数组
typedef struct DynArray{ int count; //动态数组元素个数 int capacity; //动态数组缓冲区长度 void **data; //指向数据指针数组}DynArrayvoid dynarray_init(DynArray *parr,int initsize)/**动态数组初始化,initsize表示初始原创 2016-10-03 17:33:19 · 738 阅读 · 0 评论 -
C语言中的void 和void 指针类型
C语言中的void 和void 指针类型C语言,void, void指针许多初学者对C中的void 和void 的指针类型不是很了解。因此常常在使用上出现一些错误,本文将告诉大家关于void 和void 指针类型的使用方法及技巧。 首先,我们来说说void 的含义, void的字面意思是“无类型”,void *则为“无类型指针”,void *可以转载 2016-10-03 17:35:19 · 466 阅读 · 0 评论 -
elf-hash函数
// ELF Hash Functionunsigned int ELFHash(char *str){ unsigned int hash = 0; unsigned int x = 0; while (*str) { hash = (hash << 4) + (*str++);//hash左移4位,把当前字符ASCII存入hash低四位。 if ((x = hash &转载 2016-10-03 17:47:02 · 563 阅读 · 0 评论 -
单词表及其函数
#define MAXKEY 1024 //哈希表容量TkWord *tk_hashtable[MAXKEY]; //单词哈希表DynArray tktable; //单词表typedef struct TkWord{ int tkcode; //单词编码原创 2016-10-03 20:47:40 · 532 阅读 · 0 评论 -
词法分析初始化
/**功能:词法分析初始化**/void init_lex(){ TkWord *tp; static TkWord keywords[]={ {TK_PLUS,NULL,"+",NULL,NULL}, {TK_MINUS,NULL,"-",NULL,NULL}, {TK_STAR,NULL,"*",NULL,NULL}, {TK_DIVIDE,原创 2016-10-03 21:07:25 · 440 阅读 · 0 评论 -
C语言中省略号使用
C++允许定义形参个数和类型不确定的函数。例如,C语言中的标准函数printf便使用这种机制。在声明不确定形参的函数时,形参部分可以使用省略号“…”代替。“…”告诉编译器,在函数调用时不检查形参类型是否与实参类型相同,也不检查参数个数。例如:void ConnectData(int i,...)在上面的代码中,编译器只检查第一个参数是否为整型,而不对其他参数进行检查。转载 2016-10-04 09:52:09 · 7383 阅读 · 0 评论 -
编译器错误处理系统
/*错误处理程序用到的枚举定义*//*错误级别*/enum e_ErrorLevel{ LEVEL_WARNING, LEVEL_ERROR,};/*工作阶段*/enum e_WorkStage{ STAGE_COMPILE, STAGE_LINK,};/**异常处理stage:编译阶段还是链接阶段level:错误级别fmt:参数输出格式原创 2016-10-04 10:37:57 · 982 阅读 · 0 评论 -
词法分析主程序
/**词法分析主程序**/TkWord * tk_hashtable[MAXKEY]; //单词哈希表DynArray tktable; //单词动态数组,单词表中放置标识符,包括变量名,函数名,结构定义名DynString tkstr; //单词字符串DynString sourcestr; //单词源码原创 2016-10-05 11:43:56 · 737 阅读 · 0 评论