gbstrtab.c

来自「C编译器,在VC6.0环境下开发」· C语言 代码 · 共 71 行

C
71
字号
#include	"GBStrTab.h"
#include	"Error.h"
#include	<malloc.h>
#include	<stdio.h>
#include	<string.h>

const_string *g_StringTabHead;

static	int		sg_nstr_num;
const	char	_STR_VAR_NAME[] = "str_%d";

// init string tab
void	InitStringTab()
{
	g_StringTabHead = NULL;
	sg_nstr_num = 0;
}

// free string tab
void	DestoryStringTab()
{
	const_string *p;

	p = g_StringTabHead;

	while ( p )
	{
		const_string *tmp = p;

		p = p->next;
		free(tmp);
	}
	g_StringTabHead = NULL;
	sg_nstr_num = 0;
}

// add string to string tab
// dont think the same string
// can add in string list , future........
const_string *AddStringToStrTab( const char *str )
{
	const_string *tmp;

	// malloc the memory
	tmp	= (const_string *)malloc( sizeof(const_string) );

	if ( !tmp )
	{
		yyerror("Out of memory in AddStringToStrTab()");
		user_exit(1);
	}

	// copy string and assign globe string value NO.
	strncpy( tmp->str, str, MAX_STR_LEN );
	sprintf( tmp->rname, _STR_VAR_NAME, sg_nstr_num++ );

	tmp->next = g_StringTabHead;

	g_StringTabHead = tmp;

	// ok, go........
	return	tmp;
}

const_string    *get_string_tab_head()
{
	return	g_StringTabHead;
}


⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?