#include #define bool _Bool #define EOF (-1) // libc function void* malloc(unsigned int size); void free(void* ptr); int printf(const char *pattern, ...); int scanf(const char *format, ...); int sprintf(char *str, const char *pattern, ...); int sscanf(const char *str, const char *pattern, ...); int string_length(char *self) { int res=0; while(self[res]!='\0') { res++; } return res; } char* string_substring(char *self,int left, int right) { int len = right - left; char *res = (char*)malloc(len+1); for(int i=0;i>8)&0xff; ((unsigned char*)res)[2] = (dim_size[0]>>16)&0xff; ((unsigned char*)res)[3] = (dim_size[0]>>24)&0xff; void* actual_space=((char*)res)+4; res=actual_space; } else { res=malloc(dim_size[0]*sizeof(void*)+4); ((unsigned char*)res)[0] = dim_size[0]&0xff; ((unsigned char*)res)[1] = (dim_size[0]>>8)&0xff; ((unsigned char*)res)[2] = (dim_size[0]>>16)&0xff; ((unsigned char*)res)[3] = (dim_size[0]>>24)&0xff; void* actual_space=((char*)res)+4; for(int i=0;i>8)&0xff; ((unsigned char*)res)[2] = (element_num>>16)&0xff; ((unsigned char*)res)[3] = (element_num>>24)&0xff; return ((char*)res)+4; } // void* _builtin_AllocateArray(int total_dimensions,int basic_element_size,...) { // va_list args; // va_start(args, basic_element_size); // int* dim_size=(int*)malloc(total_dimensions*sizeof(int)); // int dims_with_size=0; // for(int i=0;i=0) dims_with_size++; // } // if(dims_with_size