亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? archive.c

?? GCC編譯器源代碼
?? C
?? 第 1 頁 / 共 3 頁
字號:
  case _C_CHR:    return objc_read_char (stream, (char*)data);    break;      case _C_UCHR:    return objc_read_unsigned_char (stream, (unsigned char*)data);    break;  case _C_SHT:    return objc_read_short (stream, (short*)data);    break;  case _C_USHT:    return objc_read_unsigned_short (stream, (unsigned short*)data);    break;  case _C_INT:    return objc_read_int (stream, (int*)data);    break;  case _C_UINT:    return objc_read_unsigned_int (stream, (unsigned int*)data);    break;  case _C_LNG:    return objc_read_long (stream, (long*)data);    break;  case _C_ULNG:    return objc_read_unsigned_long (stream, (unsigned long*)data);    break;  case _C_CHARPTR:  case _C_ATOM:    return objc_read_string (stream, (char**)data);    break;  case _C_ARY_B:    {      int len = atoi(type+1);      while (isdigit(*++type))	;      return objc_read_array (stream, type, len, data);    }    break;   case _C_STRUCT_B:    {      int acc_size = 0;      int align;      while (*type != _C_STRUCT_E && *type++ != '=')	; /* skip "<name>=" */      while (*type != _C_STRUCT_E)	{	  align = objc_alignof_type (type);       /* padd to alignment */	  acc_size += ROUND (acc_size, align);	  objc_read_type (stream, type, ((char*)data)+acc_size);	  acc_size += objc_sizeof_type (type);   /* add component size */	  type = objc_skip_typespec (type);	 /* skip component */	}      return 1;    }  default:    {      objc_error(nil, OBJC_ERR_BAD_TYPE,		 "objc_read_type: cannot parse typespec: %s\n", type);      return 0;    }  }}/*** Write the object specified by the template TYPE to STREAM.  Last** arguments specify addresses of values to be written.  It might ** seem surprising to specify values by address, but this is extremely** convenient for copy-paste with objc_read_types calls.  A more** down-to-the-earth cause for this passing of addresses is that values** of arbitrary size is not well supported in ANSI C for functions with** variable number of arguments.*/int objc_write_types (TypedStream* stream, const char* type, ...){  va_list args;  const char *c;  int res = 0;  va_start(args, type);  for (c = type; *c; c = objc_skip_typespec (c))    {      switch(*c) {      case _C_ID:	res = objc_write_object (stream, *va_arg (args, id*));	break;      case _C_CLASS:	res = objc_write_class (stream, *va_arg(args, Class*));	break;      case _C_SEL:	res = objc_write_selector (stream, *va_arg(args, SEL*));	break;	      case _C_CHR:	res = objc_write_char (stream, *va_arg (args, char*));	break;	      case _C_UCHR:	res = objc_write_unsigned_char (stream,					*va_arg (args, unsigned char*));	break;	      case _C_SHT:	res = objc_write_short (stream, *va_arg(args, short*));	break;      case _C_USHT:	res = objc_write_unsigned_short (stream,					 *va_arg(args, unsigned short*));	break;      case _C_INT:	res = objc_write_int(stream, *va_arg(args, int*));	break;	      case _C_UINT:	res = objc_write_unsigned_int(stream, *va_arg(args, unsigned int*));	break;      case _C_LNG:	res = objc_write_long(stream, *va_arg(args, long*));	break;	      case _C_ULNG:	res = objc_write_unsigned_long(stream, *va_arg(args, unsigned long*));	break;      case _C_CHARPTR:	{	  char** str = va_arg(args, char**);	  res = objc_write_string (stream, *str, strlen(*str));	}	break;      case _C_ATOM:	{	  char** str = va_arg(args, char**);	  res = objc_write_string_atomic (stream, *str, strlen(*str));	}	break;      case _C_ARY_B:	{	  int len = atoi(c+1);	  const char* t = c;	  while (isdigit(*++t))	    ;	  res = objc_write_array (stream, t, len, va_arg(args, void*));	  t = objc_skip_typespec (t);	  if (*t != _C_ARY_E)	    objc_error(nil, OBJC_ERR_BAD_TYPE, "expected `]', got: %s", t);	}	break; 	      default:	objc_error(nil, OBJC_ERR_BAD_TYPE, 		   "objc_write_types: cannot parse typespec: %s\n", type);      }    }  va_end(args);  return res;}/* ** Last arguments specify addresses of values to be read.  Expected** type is checked against the type actually present on the stream. */int objc_read_types(TypedStream* stream, const char* type, ...){  va_list args;  const char *c;  int res = 0;  va_start(args, type);  for (c = type; *c; c = objc_skip_typespec(c))    {      switch(*c) {      case _C_ID:	res = objc_read_object(stream, va_arg(args, id*));	break;      case _C_CLASS:	res = objc_read_class(stream, va_arg(args, Class*));	break;      case _C_SEL:	res = objc_read_selector(stream, va_arg(args, SEL*));	break;	      case _C_CHR:	res = objc_read_char(stream, va_arg(args, char*));	break;	      case _C_UCHR:	res = objc_read_unsigned_char(stream, va_arg(args, unsigned char*));	break;	      case _C_SHT:	res = objc_read_short(stream, va_arg(args, short*));	break;      case _C_USHT:	res = objc_read_unsigned_short(stream, va_arg(args, unsigned short*));	break;      case _C_INT:	res = objc_read_int(stream, va_arg(args, int*));	break;	      case _C_UINT:	res = objc_read_unsigned_int(stream, va_arg(args, unsigned int*));	break;      case _C_LNG:	res = objc_read_long(stream, va_arg(args, long*));	break;	      case _C_ULNG:	res = objc_read_unsigned_long(stream, va_arg(args, unsigned long*));	break;      case _C_CHARPTR:      case _C_ATOM:	{	  char** str = va_arg(args, char**);	  res = objc_read_string (stream, str);	}	break;      case _C_ARY_B:	{	  int len = atoi(c+1);	  const char* t = c;	  while (isdigit(*++t))	    ;	  res = objc_read_array (stream, t, len, va_arg(args, void*));	  t = objc_skip_typespec (t);	  if (*t != _C_ARY_E)	    objc_error(nil, OBJC_ERR_BAD_TYPE, "expected `]', got: %s", t);	}	break; 	      default:	objc_error(nil, OBJC_ERR_BAD_TYPE, 		   "objc_read_types: cannot parse typespec: %s\n", type);      }    }  va_end(args);  return res;}/*** Write an array of COUNT elements of TYPE from the memory address DATA.** This is equivalent of objc_write_type (stream, "[N<type>]", data)*/intobjc_write_array (TypedStream* stream, const char* type,		  int count, const void* data){  int off = objc_sizeof_type(type);  const char* where = data;  while (count-- > 0)    {      objc_write_type(stream, type, where);      where += off;    }  return 1;}/*** Read an array of COUNT elements of TYPE into the memory address** DATA.  The memory pointed to by data is supposed to be allocated** by the callee.  This is equivalent of **   objc_read_type (stream, "[N<type>]", data)*/intobjc_read_array (TypedStream* stream, const char* type,		 int count, void* data){  int off = objc_sizeof_type(type);  char* where = (char*)data;  while (count-- > 0)    {      objc_read_type(stream, type, where);      where += off;    }  return 1;}static int __objc_fread(FILE* file, char* data, int len){  return fread(data, len, 1, file);}static int __objc_fwrite(FILE* file, char* data, int len){  return fwrite(data, len, 1, file);}static int__objc_feof(FILE* file){  return feof(file);}static int __objc_no_write(FILE* file, char* data, int len){  objc_error (nil, OBJC_ERR_NO_WRITE, "TypedStream not open for writing");  return 0;}static int __objc_no_read(FILE* file, char* data, int len){  objc_error (nil, OBJC_ERR_NO_READ, "TypedStream not open for reading");  return 0;}static int__objc_read_typed_stream_signature (TypedStream* stream){  char buffer[80];  int pos = 0;  do    (*stream->read)(stream->physical, buffer+pos, 1);  while (buffer[pos++] != '\0')    ;  sscanf (buffer, "GNU TypedStream %d", &stream->version);  if (stream->version != OBJC_TYPED_STREAM_VERSION)    objc_error (nil, OBJC_ERR_STREAM_VERSION,		"cannot handle TypedStream version %d", stream->version);  return 1;}static int__objc_write_typed_stream_signature (TypedStream* stream){  char buffer[80];  sprintf(buffer, "GNU TypedStream %d", OBJC_TYPED_STREAM_VERSION);  stream->version = OBJC_TYPED_STREAM_VERSION;  (*stream->write)(stream->physical, buffer, strlen(buffer)+1);  return 1;}static void __objc_finish_write_root_object(struct objc_typed_stream* stream){  hash_delete (stream->object_table);  stream->object_table = hash_new(64,				  (hash_func_type)hash_ptr,				  (compare_func_type)compare_ptrs);}static void __objc_finish_read_root_object(struct objc_typed_stream* stream){  node_ptr node;  SEL awake_sel = sel_get_any_uid ("awake");  cache_ptr free_list = hash_new (64,				  (hash_func_type) hash_ptr,				  (compare_func_type) compare_ptrs);  /* resolve object forward references */  for (node = hash_next (stream->object_refs, NULL); node;       node = hash_next (stream->object_refs, node))    {      struct objc_list* reflist = node->value;      const void* key = node->key;      id object = hash_value_for_key (stream->object_table, key);      while(reflist)	{	  *((id*)reflist->head) = object;	  if (hash_value_for_key (free_list,reflist) == NULL)	    hash_add (&free_list,reflist,reflist);	  reflist = reflist->tail;	}    }      /* apply __objc_free to all objects stored in free_list */  for (node = hash_next (free_list, NULL); node;       node = hash_next (free_list, node))    objc_free ((void *) node->key);  hash_delete (free_list);  /* empty object reference table */  hash_delete (stream->object_refs);  stream->object_refs = hash_new(8, (hash_func_type)hash_ptr,				 (compare_func_type)compare_ptrs);    /* call -awake for all objects read  */  if (awake_sel)    {      for (node = hash_next (stream->object_table, NULL); node;	   node = hash_next (stream->object_table, node))	{	  id object = node->value;	  if (__objc_responds_to (object, awake_sel))	    (*objc_msg_lookup(object, awake_sel))(object, awake_sel);	}    }  /* empty object table */  hash_delete (stream->object_table);  stream->object_table = hash_new(64,				  (hash_func_type)hash_ptr,				  (compare_func_type)compare_ptrs);}/*** Open the stream PHYSICAL in MODE*/TypedStream* objc_open_typed_stream (FILE* physical, int mode){  TypedStream* s = (TypedStream*)objc_malloc(sizeof(TypedStream));  s->mode = mode;  s->physical = physical;  s->stream_table = hash_new(64,			     (hash_func_type)hash_ptr,			     (compare_func_type)compare_ptrs);  s->object_table = hash_new(64,			     (hash_func_type)hash_ptr,			     (compare_func_type)compare_ptrs);  s->eof = (objc_typed_eof_func)__objc_feof;  s->flush = (objc_typed_flush_func)fflush;  s->writing_root_p = 0;  if (mode == OBJC_READONLY)    {      s->class_table = hash_new(8, (hash_func_type)hash_string,				(compare_func_type)compare_strings);      s->object_refs = hash_new(8, (hash_func_type)hash_ptr,				(compare_func_type)compare_ptrs);      s->read = (objc_typed_read_func)__objc_fread;      s->write = (objc_typed_write_func)__objc_no_write;      __objc_read_typed_stream_signature (s);    }  else if (mode == OBJC_WRITEONLY)    {      s->class_table = 0;      s->object_refs = 0;      s->read = (objc_typed_read_func)__objc_no_read;      s->write = (objc_typed_write_func)__objc_fwrite;      __objc_write_typed_stream_signature (s);    }        else    {      objc_close_typed_stream (s);      return NULL;    }  s->type = OBJC_FILE_STREAM;  return s;}/*** Open the file named by FILE_NAME in MODE*/TypedStream*objc_open_typed_stream_for_file (const char* file_name, int mode){  FILE* file = NULL;  TypedStream* s;  if (mode == OBJC_READONLY)    file = fopen (file_name, "r");  else    file = fopen (file_name, "w");  if (file)    {      s = objc_open_typed_stream (file, mode);      if (s)	s->type |= OBJC_MANAGED_STREAM;      return s;    }  else    return NULL;}/*** Close STREAM freeing the structure it self.  If it was opened with ** objc_open_typed_stream_for_file, the file will also be closed.*/voidobjc_close_typed_stream (TypedStream* stream){  if (stream->mode == OBJC_READONLY)    {      __objc_finish_read_root_object (stream); /* Just in case... */      hash_delete (stream->class_table);      hash_delete (stream->object_refs);    }  hash_delete (stream->stream_table);  hash_delete (stream->object_table);  if (stream->type == (OBJC_MANAGED_STREAM | OBJC_FILE_STREAM))    fclose ((FILE*)stream->physical);  objc_free(stream);}BOOLobjc_end_of_typed_stream (TypedStream* stream){  return (*stream->eof)(stream->physical);}voidobjc_flush_typed_stream (TypedStream* stream){  (*stream->flush)(stream->physical);}longobjc_get_stream_class_version (TypedStream* stream, Class class){  if (stream->class_table)    return PTR2LONG(hash_value_for_key (stream->class_table, class->name));  else    return class_get_version (class);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美亚洲动漫另类| 国产精品乱码一区二三区小蝌蚪| 欧美网站一区二区| 99精品欧美一区二区三区综合在线| 成人免费视频播放| 成人免费毛片高清视频| 成人动漫在线一区| 91女人视频在线观看| 色国产综合视频| 欧美日韩久久一区| 日韩视频在线你懂得| 中文字幕日韩一区| 亚洲日本va午夜在线影院| 一个色在线综合| 日韩和的一区二区| 久久99精品国产麻豆不卡| 国产盗摄一区二区| 97精品国产露脸对白| 欧美在线一二三四区| 制服丝袜亚洲精品中文字幕| 精品国产乱码久久久久久夜甘婷婷 | 亚洲v日本v欧美v久久精品| 亚洲最色的网站| 偷拍与自拍一区| 麻豆精品蜜桃视频网站| 国产资源在线一区| 不卡一区二区三区四区| 欧美午夜免费电影| 日韩一二三区视频| 国产精品天美传媒沈樵| 亚洲中国最大av网站| 欧美aa在线视频| 福利电影一区二区三区| 欧美天堂亚洲电影院在线播放| 日韩三级伦理片妻子的秘密按摩| 欧美激情一区二区三区蜜桃视频| 亚洲综合无码一区二区| 美国欧美日韩国产在线播放| 成人妖精视频yjsp地址| 欧美亚洲国产一区二区三区va| 日韩一卡二卡三卡国产欧美| 欧美国产日产图区| 天堂在线亚洲视频| 成人黄色片在线观看| 欧美日韩精品一区二区三区四区| 精品国产污网站| 亚洲免费色视频| 国产伦精品一区二区三区免费 | 国产成人欧美日韩在线电影| 色中色一区二区| 精品入口麻豆88视频| 综合久久久久久| 欧美96一区二区免费视频| av午夜精品一区二区三区| 91精品一区二区三区久久久久久 | 轻轻草成人在线| 成人综合在线网站| 91精品国产美女浴室洗澡无遮挡| 亚洲视频一区二区免费在线观看| 久久精品99国产精品| 色天使色偷偷av一区二区| 欧美成人精品1314www| 亚洲欧美一区二区三区国产精品| 国内欧美视频一区二区| 欧美日韩综合在线| 成人免费一区二区三区视频| 韩国女主播成人在线| 欧美日韩国产一区| 亚洲女同一区二区| 粉嫩aⅴ一区二区三区四区| 欧美一区二区国产| 香蕉加勒比综合久久| 色综合网站在线| 欧美国产成人精品| 国产精品99久久久| 欧美精品一区二区在线观看| 天堂一区二区在线| 在线观看不卡一区| 亚洲欧美日韩一区二区| 成人av网站在线观看| 久久久国产精华| 黑人精品欧美一区二区蜜桃| 91精品国产综合久久久蜜臀粉嫩| 亚洲主播在线播放| 色婷婷综合久久久久中文一区二区| 国产精品私房写真福利视频| 国产精品91一区二区| 欧美成人精品高清在线播放| 欧美aa在线视频| 欧美一区二区三区系列电影| 亚洲国产精品嫩草影院| 欧美中文字幕亚洲一区二区va在线 | 99久久er热在这里只有精品66| 国产日韩欧美在线一区| 久久69国产一区二区蜜臀| 欧美福利一区二区| 亚洲不卡一区二区三区| 欧美日韩亚洲丝袜制服| 亚洲国产一区在线观看| 91行情网站电视在线观看高清版| 日韩美女视频一区| 91麻豆免费在线观看| 一区二区在线观看视频在线观看| 91丨九色丨国产丨porny| 亚洲色图.com| 在线国产电影不卡| 亚洲大片一区二区三区| 欧美久久久久中文字幕| 日本女人一区二区三区| 精品嫩草影院久久| 国产乱国产乱300精品| 久久综合久久鬼色中文字| 国产精品99久久久久久久女警| 欧美激情在线一区二区三区| 北岛玲一区二区三区四区| 亚洲美女少妇撒尿| 欧美巨大另类极品videosbest | 成人免费av在线| 亚洲欧美综合色| 在线视频欧美精品| 午夜精品久久久久久久久久| 欧美一区三区二区| 国内精品久久久久影院色 | 激情综合色丁香一区二区| 久久亚洲一级片| 成人精品视频一区二区三区尤物| 亚洲丝袜精品丝袜在线| 色播五月激情综合网| 日韩精品每日更新| 久久久国产午夜精品| 一本久久a久久免费精品不卡| 五月天精品一区二区三区| 精品欧美乱码久久久久久1区2区 | 欧美精品一区二区三区蜜桃 | 色婷婷综合激情| 日韩成人av影视| 欧美国产综合色视频| 在线欧美日韩国产| 奇米一区二区三区| 日韩有码一区二区三区| 欧美精品一区二区三区蜜桃视频| 91在线视频播放地址| 丝袜亚洲另类欧美| 久久精品视频网| 欧美午夜视频网站| 国产精品一区免费视频| 亚洲国产一二三| 精品国产乱码久久久久久牛牛| 99国产欧美久久久精品| 青椒成人免费视频| 国产精品久久久久久久裸模| 欧美高清性hdvideosex| 国产成人精品免费| 日韩在线a电影| 日韩美女啊v在线免费观看| 日韩一区二区高清| 色噜噜狠狠色综合中国| 狠狠色丁香婷婷综合久久片| 亚洲最快最全在线视频| 久久久天堂av| 欧美乱妇一区二区三区不卡视频| 成人污视频在线观看| 日韩影院在线观看| 亚洲三级久久久| 久久久不卡网国产精品二区 | 亚洲私人影院在线观看| 日韩欧美国产一区二区三区| 一本色道综合亚洲| 国产成人日日夜夜| 奇米色777欧美一区二区| 亚洲精品成人在线| 中文字幕乱码亚洲精品一区| 日韩一级黄色片| 日本乱人伦一区| 成人不卡免费av| 狠狠色狠狠色合久久伊人| 性久久久久久久久| 亚洲欧美激情小说另类| 中文字幕欧美国产| 久久影院视频免费| 日韩精品影音先锋| 欧美三级中文字幕| 日本精品一级二级| av爱爱亚洲一区| 成人av资源下载| 国产很黄免费观看久久| 激情成人综合网| 麻豆91精品91久久久的内涵| 亚洲成av人在线观看| 亚洲一区二区三区四区不卡 | 91麻豆国产精品久久| 粉嫩久久99精品久久久久久夜| 久久99精品国产麻豆婷婷| 奇米影视7777精品一区二区| 日韩av一二三| 丝袜美腿亚洲色图| 婷婷成人综合网| 日本v片在线高清不卡在线观看| 五月天欧美精品| 日韩精品国产精品|