trying TEMPLATE C
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
|
||||
#include "src/set_theoric_t/set_theoric_t.h"
|
||||
|
||||
#define CREATE_SET_THEORIC(type, id)\
|
||||
type * CREATE_SET_THEORIC_##type(type id){\
|
||||
if(id == 0) return NULL;\
|
||||
SET_THEORIC_##type *ret_set = malloc(sizeof(SET_THEORIC_##type));\
|
||||
ret_set->id = id;\
|
||||
ret_set->set = malloc(id*sizeof(type));\
|
||||
for(type i = 0; i < id; ++i) ret_set->set[i]=i;\
|
||||
return ret_set; }
|
||||
CREATE_SET_THEORIC(TYPE_U_CHAR)
|
||||
CREATE_SET_THEORIC(TYPE_U_INT)
|
||||
CREATE_SET_THEORIC(TYPE_U_LONG_INT)
|
||||
|
||||
#define IS_SET_THEORIC(type, st)\
|
||||
bool IS_SET_THEORIC_##type(type *st){\
|
||||
for(type i = 0; i < st->id; ++i){\
|
||||
if(st->set[i] != i) return false;\
|
||||
return true; }
|
||||
IS_SET_THEORIC(TYPE_U_CHAR,st)
|
||||
IS_SET_THEORIC(TYPE_U_INT,st)
|
||||
IS_SET_THEORIC(TYPE_U_LONG_INT,st)
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
#ifndef __SET_THEORIC_T_C__H
|
||||
#define __SET_THEORIC_T_C__H
|
||||
|
||||
#include <stdlib.h>
|
||||
|
||||
#include "src/tools_t/tools_t.h"
|
||||
|
||||
#define STRUCT_SET_THEORIC(type)\
|
||||
struct SET_THEORIC_##type{\
|
||||
type id;\
|
||||
type *set;};
|
||||
|
||||
STRUCT_SET_THEORIC(TYPE_U_CHAR)
|
||||
STRUCT_SET_THEORIC(TYPE_U_INT)
|
||||
STRUCT_SET_THEORIC(TYPE_U_LONG_INT)
|
||||
|
||||
typedef struct SET_THEORIC_TYPE_U_CHAR SET_THEORIC_TYPE_U_CHAR;
|
||||
typedef struct SET_THEORIC_TYPE_U_INT SET_THEORIC_TYPE_U_INT;
|
||||
typedef struct SET_THEORIC_TYPE_U_LONG_INT SET_THEORIC_TYPE_U_LONG_INT;
|
||||
|
||||
SET_THEORIC_TYPE_U_CHAR * CREATE_SET_THEORIC_TYPE_U_CHAR(TYPE_U_CHAR);
|
||||
SET_THEORIC_TYPE_U_INT * CREATE_SET_THEORIC_TYPE_U_INT(TYPE_U_INT);
|
||||
SET_THEORIC_TYPE_U_LONG_INT * CREATE_SET_THEORIC_TYPE_U_LONG_INT(TYPE_U_LONG_INT);
|
||||
|
||||
bool IS_SET_THEORIC_TYPE_U_CHAR(SET_THEORIC_TYPE_U_CHAR *st);
|
||||
bool IS_SET_THEORIC_TYPE_U_INT(SET_THEORIC_TYPE_U_INT *st);
|
||||
bool IS_SET_THEORIC_TYPE_U_LONG_INT(SET_THEORIC_TYPE_U_LONG_INT *st);
|
||||
|
||||
|
||||
|
||||
#endif /*__SET_THEORIC_T_C__H*/
|
||||
Reference in New Issue
Block a user