instlist.h

来自「Software Development in C: A Practical A」· C头文件 代码 · 共 99 行

H
99
字号
//---------------------------------------------------------
/*
File name:	InstList.h
Comments:	This file contains the definitions needed to 
			use the instance_list type. An instance list
			is declared and initialized using the 
			DeclareInstanceList() macro. 
*/
//---------------------------------------------------------

#ifndef INSTLIST_H
#define INSTLIST_H

//---------------------------------------------------------
// Enumerated types

typedef enum
{
	ILE_NO_ERROR,
	ILE_CANT_ALLOCATE_LIST,
	ILE_ITEM_NOT_FOUND,
	ITEM_IDENTIFIER_OUT_OF_RANGE
} instance_list_error;

// End enumerated types
//---------------------------------------------------------



//---------------------------------------------------------
// Type definitions

typedef int instance_list_size;

typedef instance_list_size instance_identifier;

typedef void * instance_list_item;

typedef struct
{
	instance_list_item *itemArray;
	instance_list_size listLength;
	instance_list_error errorStatus;
} instance_list;

// End type definitions
//---------------------------------------------------------




//---------------------------------------------------------
// Macros

// Use this macro to declare and initialize a list.
#define DeclareInstanceList(listName)					\
			static instance_list listName = {			\
									  NULL,				\
									  0,				\
									  ILE_NO_ERROR}

// End Macros
//---------------------------------------------------------




//---------------------------------------------------------
// Prototypes

instance_identifier InstanceListAddItem(
						instance_list *theList,
						instance_list_item theItem);

instance_list_item InstanceListGetItem(
						instance_list *theList,
						instance_identifier itemID);

instance_list_size InstanceListGetLength(
						instance_list *theList);

instance_list_item InstanceListRemoveItem(
						instance_list *theList,
						instance_identifier itemID);

instance_list_error InstanceListGetLastError(
						instance_list *theList);

void InstanceListClearError(instance_list *theList);


// End prototypes
//---------------------------------------------------------

#endif

// End InstList.h
//---------------------------------------------------------

⌨️ 快捷键说明

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