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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? alloca.c

?? 編譯原理(Flex):生成詞法和語(yǔ)法分析程序的源代碼的程序。
?? C
字號(hào):
/*
	alloca -- (mostly) portable public-domain implementation -- D A Gwyn

	last edit:	86/05/30	rms
	   include config.h, since on VMS it renames some symbols.
	   Use xmalloc instead of malloc.

	This implementation of the PWB library alloca() function,
	which is used to allocate space off the run-time stack so
	that it is automatically reclaimed upon procedure exit, 
	was inspired by discussions with J. Q. Johnson of Cornell.

	It should work under any C implementation that uses an
	actual procedure stack (as opposed to a linked list of
	frames).  There are some preprocessor constants that can
	be defined when compiling for your specific system, for
	improved efficiency; however, the defaults should be okay.

	The general concept of this implementation is to keep
	track of all alloca()-allocated blocks, and reclaim any
	that are found to be deeper in the stack than the current
	invocation.  This heuristic does not reclaim storage as
	soon as it becomes invalid, but it will do so eventually.

	As a special case, alloca(0) reclaims storage without
	allocating any.  It is a good idea to use alloca(0) in
	your main control loop, etc. to force garbage collection.
*/
#ifndef lint
static char	SCCSid[] = "@(#)alloca.c	1.1";	/* for the "what" utility */
#endif

#ifdef emacs
#include "config.h"
#ifdef static
/* actually, only want this if static is defined as ""
   -- this is for usg, in which emacs must undefine static
   in order to make unexec workable
   */
#ifndef STACK_DIRECTION
you
lose
-- must know STACK_DIRECTION at compile-time
#endif /* STACK_DIRECTION undefined */
#endif /* static */
#endif /* emacs */

#ifndef alloca  /* If compiling with GCC, this file's not needed.  */

#ifdef __STDC__
typedef void	*pointer;		/* generic pointer type */
#else
typedef char	*pointer;		/* generic pointer type */
#endif

#define	NULL	0			/* null pointer constant */

extern void	free();
extern pointer	xmalloc();

/*
	Define STACK_DIRECTION if you know the direction of stack
	growth for your system; otherwise it will be automatically
	deduced at run-time.

	STACK_DIRECTION > 0 => grows toward higher addresses
	STACK_DIRECTION < 0 => grows toward lower addresses
	STACK_DIRECTION = 0 => direction of growth unknown
*/

#ifndef STACK_DIRECTION
#define	STACK_DIRECTION	0		/* direction unknown */
#endif

#if STACK_DIRECTION != 0

#define	STACK_DIR	STACK_DIRECTION	/* known at compile-time */

#else	/* STACK_DIRECTION == 0; need run-time code */

static int	stack_dir;		/* 1 or -1 once known */
#define	STACK_DIR	stack_dir

static void
find_stack_direction (/* void */)
{
  static char	*addr = NULL;	/* address of first
				   `dummy', once known */
  auto char	dummy;		/* to get stack address */

  if (addr == NULL)
    {				/* initial entry */
      addr = &dummy;

      find_stack_direction ();	/* recurse once */
    }
  else				/* second entry */
    if (&dummy > addr)
      stack_dir = 1;		/* stack grew upward */
    else
      stack_dir = -1;		/* stack grew downward */
}

#endif	/* STACK_DIRECTION == 0 */

/*
	An "alloca header" is used to:
	(a) chain together all alloca()ed blocks;
	(b) keep track of stack depth.

	It is very important that sizeof(header) agree with malloc()
	alignment chunk size.  The following default should work okay.
*/

#ifndef	ALIGN_SIZE
#define	ALIGN_SIZE	sizeof(double)
#endif

typedef union hdr
{
  char	align[ALIGN_SIZE];	/* to force sizeof(header) */
  struct
    {
      union hdr *next;		/* for chaining headers */
      char *deep;		/* for stack depth measure */
    } h;
} header;

/*
	alloca( size ) returns a pointer to at least `size' bytes of
	storage which will be automatically reclaimed upon exit from
	the procedure that called alloca().  Originally, this space
	was supposed to be taken from the current stack frame of the
	caller, but that method cannot be made to work for some
	implementations of C, for example under Gould's UTX/32.
*/

static header *last_alloca_header = NULL; /* -> last alloca header */

pointer
alloca (size)			/* returns pointer to storage */
     unsigned	size;		/* # bytes to allocate */
{
  auto char	probe;		/* probes stack depth: */
  register char	*depth = &probe;

#if STACK_DIRECTION == 0
  if (STACK_DIR == 0)		/* unknown growth direction */
    find_stack_direction ();
#endif

				/* Reclaim garbage, defined as all alloca()ed storage that
				   was allocated from deeper in the stack than currently. */

  {
    register header	*hp;	/* traverses linked list */

    for (hp = last_alloca_header; hp != NULL;)
      if ((STACK_DIR > 0 && hp->h.deep > depth)
	  || (STACK_DIR < 0 && hp->h.deep < depth))
	{
	  register header	*np = hp->h.next;

	  free ((pointer) hp);	/* collect garbage */

	  hp = np;		/* -> next header */
	}
      else
	break;			/* rest are not deeper */

    last_alloca_header = hp;	/* -> last valid storage */
  }

  if (size == 0)
    return NULL;		/* no allocation required */

  /* Allocate combined header + user data storage. */

  {
    register pointer	new = xmalloc (sizeof (header) + size);

    /* address of header */

    ((header *)new)->h.next = last_alloca_header;
    ((header *)new)->h.deep = depth;

    last_alloca_header = (header *)new;

    /* User storage begins just after header. */

    return (pointer)((char *)new + sizeof(header));
  }
}

#endif /* no alloca */

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品乱码一区二三区小蝌蚪| 日韩一区欧美二区| 亚洲mv大片欧洲mv大片精品| 国产精品正在播放| 欧美一区二区网站| 亚洲视频一区二区在线观看| 国产呦精品一区二区三区网站| 欧美性色综合网| 中文字幕一区三区| 国产一区久久久| 91精品国产一区二区三区蜜臀| 亚洲人成网站在线| www.日韩在线| 国产欧美精品一区二区色综合| 免费日本视频一区| 欧美男女性生活在线直播观看| 亚洲三级在线看| 成人91在线观看| 国产亚洲精品7777| 色屁屁一区二区| 久久婷婷综合激情| 紧缚捆绑精品一区二区| 欧美肥妇毛茸茸| 亚洲电影一区二区三区| 色呦呦一区二区三区| 国产精品国产三级国产三级人妇 | 亚洲久本草在线中文字幕| 韩国精品主播一区二区在线观看 | 精品在线播放免费| 日韩一区二区三区电影| 奇米精品一区二区三区在线观看 | 91丝袜美女网| 国产精品电影院| 成人网男人的天堂| 国产精品久久国产精麻豆99网站| 成人一区二区三区在线观看| 国产日韩三级在线| 成人听书哪个软件好| 国产精品视频看| 一本到一区二区三区| 亚洲色图制服丝袜| 欧美三电影在线| 调教+趴+乳夹+国产+精品| 日韩视频在线一区二区| 国精产品一区一区三区mba桃花| 欧美哺乳videos| 国产传媒久久文化传媒| 亚洲色图视频网站| 欧美电影一区二区| 国精品**一区二区三区在线蜜桃| 国产欧美一区二区三区在线看蜜臀| 成人黄色免费短视频| 亚洲男人的天堂av| 69p69国产精品| 国产综合色产在线精品| 国产精品麻豆99久久久久久| 一本久久a久久免费精品不卡| 天天综合网 天天综合色| 精品国产精品一区二区夜夜嗨| 粉嫩高潮美女一区二区三区 | 欧美不卡激情三级在线观看| 国产在线视频一区二区| 国产精品国产a| 欧美伊人久久久久久午夜久久久久| 日韩成人精品在线观看| 日本一区二区综合亚洲| 欧美探花视频资源| 国产永久精品大片wwwapp| 亚洲欧美区自拍先锋| 欧美人与禽zozo性伦| 国产99久久久久久免费看农村| 亚洲一区二区三区中文字幕| 久久综合五月天婷婷伊人| 色综合久久66| 国产一区二区三区四区五区美女 | 亚洲人成在线观看一区二区| 欧美一区二区在线观看| 91网站视频在线观看| 蜜桃视频在线一区| 亚洲摸摸操操av| 久久美女高清视频 | 色94色欧美sute亚洲线路二 | 99久久精品免费看国产| 午夜激情久久久| 中文字幕中文字幕在线一区 | 久久99深爱久久99精品| 亚洲精选免费视频| 久久精品亚洲精品国产欧美| 欧美主播一区二区三区美女| 成人激情黄色小说| 国内成+人亚洲+欧美+综合在线| 午夜精品久久久久久久久| 综合久久久久综合| 精品成人私密视频| 日韩一区二区高清| 欧美综合一区二区| 91久久久免费一区二区| 成人激情图片网| 丁香激情综合五月| 国产精品一区二区三区网站| 无码av中文一区二区三区桃花岛| 亚洲色图欧洲色图| 中文字幕在线一区二区三区| 久久久久久久久久久久久夜| 91精品国产丝袜白色高跟鞋| 在线看一区二区| 91亚洲精华国产精华精华液| 丁香一区二区三区| 国产91精品露脸国语对白| 国产又黄又大久久| 美女视频网站黄色亚洲| 免费不卡在线观看| 美腿丝袜亚洲综合| 美国三级日本三级久久99| 爽好久久久欧美精品| 亚洲成人av福利| 午夜一区二区三区在线观看| 亚洲国产日韩精品| 亚洲gay无套男同| 天天色天天爱天天射综合| 亚洲成a人片在线观看中文| 亚洲精品老司机| 亚洲电影激情视频网站| 亚洲国产欧美日韩另类综合| 亚洲成av人片在线观看无码| 亚洲最大的成人av| 日韩专区在线视频| 奇米一区二区三区| 国产福利一区二区三区在线视频| 国产白丝网站精品污在线入口| 懂色av一区二区三区蜜臀| 懂色av一区二区夜夜嗨| 95精品视频在线| 欧美日韩一区国产| 这里只有精品电影| 国产亚洲成av人在线观看导航| 国产欧美精品一区aⅴ影院 | 久久久影视传媒| 亚洲国产精品成人综合色在线婷婷 | 欧美日韩一级片网站| 日韩免费视频一区| 中文在线一区二区 | 中文字幕一区二区三区四区 | 亚洲女人的天堂| 午夜精品久久久久久久99樱桃| 国内精品国产三级国产a久久| 成人av综合在线| 欧美少妇性性性| 精品久久久久久久久久久久包黑料| 国产亚洲精品aa午夜观看| 亚洲综合免费观看高清完整版| 日本不卡不码高清免费观看| 高清不卡一二三区| 欧美剧情电影在线观看完整版免费励志电影 | 日韩电影在线免费观看| 韩国一区二区在线观看| 在线观看区一区二| 久久久久久久久久久久久女国产乱| 亚洲乱码精品一二三四区日韩在线| 天天色 色综合| 成人免费看片app下载| 欧美电影影音先锋| 国产女人18毛片水真多成人如厕| 亚洲电影在线播放| 国产成人日日夜夜| 欧美一区二区三区视频在线 | 欧美aⅴ一区二区三区视频| 国产精品88av| 欧美美女激情18p| 亚洲私人黄色宅男| 国产精品正在播放| 日韩一区二区三区电影| 亚洲婷婷在线视频| 国产精品538一区二区在线| 51精品国自产在线| 亚洲精选在线视频| 成人黄色一级视频| 26uuu国产在线精品一区二区| 亚洲超丰满肉感bbw| 91蝌蚪国产九色| 亚洲国产成人午夜在线一区| 麻豆精品一区二区| 欧美另类久久久品| 亚洲韩国一区二区三区| 91女神在线视频| 久久精品视频在线看| 久久国产精品99久久久久久老狼| 91成人免费电影| 一区二区三区在线观看欧美| av亚洲精华国产精华精| 久久精品欧美日韩| 久久超碰97中文字幕| 日韩视频一区二区| 久久成人久久爱| 日韩免费视频一区| 精品亚洲国产成人av制服丝袜| 日韩欧美高清一区| 狠狠色2019综合网| 国产网站一区二区| 国产sm精品调教视频网站|