• [备忘]Source Insight检查函数-变量是否被使用


    macro IsUsed(symbol)
    {
        var search_buf;
        var search_count;
    
        var link_recrod;
        var link_buf;
    
        var ref_sym;
    
        var is_used;
        
        var i;
    
        is_used = False;
        if (symbol == Nil) {
            return is_used;
        }
    
        search_buf = NewBuf("Search");
        if (search_buf == hNil) {
            Msg("new buf failed.");
            stop;
        }
    
        SearchForRefs(search_buf, symbol, False);
        search_count = GetBufLineCount(search_buf);
    
        i = 0;
        while (i < search_count) {
            link_recrod = GetSourceLink(search_buf, i);
            i = i + 1;
    
            if (link_recrod == Nil) {
                continue;
            }
            link_buf = OpenBuf(link_recrod.File);
            ref_sym = GetSymbolLocationFromLn(link_buf, link_recrod.ln);
            // CloseBuf(link_buf);
    
            if (ref_sym == Nil) {
                continue;
            }
            // Msg(ref_sym.Symbol # " " # ref_sym.File # " " # ref_sym.lnFirst);
            if (ref_sym.Symbol != symbol) {
                is_used = True;
                break;
            }
        }
        CloseBuf(search_buf);
    
        return is_used;
    }
    
    
    macro CheckIsUsed()
    {
        var data_file_name;
        var data_file_buf;
        var data_file_count;
        var data_file_line;
    
        var used_record_buf;
        var used_record_name;
    
        var i;
        var is_used;
       
    
        data_file_name = "Data.txt";
    
        used_record_name = "used_record.txt";
    
        used_record_buf = NewBuf(used_record_name);
        SetCurrentBuf(used_record_buf);
    
        data_file_buf = OpenBuf(data_file_name);
        data_file_count = GetBufLineCount(data_file_buf);
        i = 0;
        while (i < data_file_count) {
            data_file_line = GetBufLine(data_file_buf, i);
            i = i + 1;
    
            is_used = IsUsed(data_file_line);
            AppendBufLine(used_record_buf, data_file_line # "," # is_used);
        }
    }
  • 相关阅读:
    红外应用
    电池分类及特点
    温湿度传感器AM2302(DH22)
    lora
    跳频扩频技术学习
    STM32F4/F7运算性能
    物联网相关模块
    DC-DC芯片
    外部引用CSS中 link与@import的区别
    超酷实用的jQuery焦点图赏析及源码
  • 原文地址:https://www.cnblogs.com/YBhello/p/11028737.html
Copyright © 2020-2023  润新知