<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    莊周夢蝶

    生活、程序、未來
       :: 首頁 ::  ::  :: 聚合  :: 管理

    判斷棧的增長方向

    Posted on 2007-09-17 16:16 dennis 閱讀(1134) 評論(0)  編輯  收藏 所屬分類: linux & C
        dreamhead老大曾經討論過這個問題,尋找一種可移植的方式來判斷棧的增長方向,見《棧的增長方向》。今天在讀Ruby hacking guide第5章,介紹alloca函數的部分,提到ruby實現的C語言版本的alloca.c,讀了下代碼,發現這里倒是實現了一個很漂亮的函數用于實現判斷棧的增長方向,利用了局部static變量,與dreamhead老大的想法其實是一致的。
    #include<stdio.h>
    static void find_stack_direction(void);
    static int stack_dir;
    int main(void)
    {
      find_stack_direction();
      
    if(stack_dir==1)
         puts(
    "stack grew upward");
      
    else
         puts(
    "stack grew downward");
      
    return 0;
    }
    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 */
    }

    主站蜘蛛池模板: 亚洲av无码无线在线观看| 久久夜色精品国产噜噜噜亚洲AV| 日韩亚洲不卡在线视频中文字幕在线观看| 九九视频高清视频免费观看| 亚洲人午夜射精精品日韩| 免费人人潮人人爽一区二区 | 亚洲一区二区三区高清在线观看| 无码区日韩特区永久免费系列| 亚洲无人区视频大全| 日韩免费一区二区三区在线播放| 亚洲国产成人在线视频 | 男人的天堂亚洲一区二区三区| 精品亚洲456在线播放| 国产精品酒店视频免费看| 国产亚洲视频在线观看网址| 亚洲XX00视频| 久久青草免费91线频观看不卡| 亚洲永久中文字幕在线| 性感美女视频免费网站午夜| 立即播放免费毛片一级| 亚洲人成网站色在线入口| 免费日本一区二区| 亚洲an日韩专区在线| 免费精品国产自产拍观看| 十八禁视频在线观看免费无码无遮挡骂过| 久久久无码精品亚洲日韩蜜桃| 最近中文字幕mv免费高清视频8 | 亚洲理论电影在线观看| 99精品视频免费在线观看| 成人区精品一区二区不卡亚洲| 亚洲国产精品不卡毛片a在线| 精品在线免费观看| 亚洲 日韩 色 图网站| 亚洲中文字幕伊人久久无码| 97公开免费视频| 无码亚洲成a人在线观看| 亚洲av女电影网| 免费一级e一片在线播放| 华人在线精品免费观看| 亚洲精品无AMM毛片| 亚洲国产成人高清在线观看|