• makefile规则编写&C语言字符串拷贝&vim介绍


    makefile规则:
    $@:目标文件
    $^:所有的依赖文件
    $<:第一个依赖文件
    -c:输出目标代码,不输出可执行文件
    -g:编译器编译的时候提供以后对程序调试的信息
    target:rules
        gcc -o $@ $^
    install:
        cp target /usr/local/bin
    clean:
        rm target
        
    lib库查找方法:
    nm -o /lib/*.so | grep "函数名字"
    nm -o /lib/*.so | grep “sin”
    输出libm-2.1.2.so    sin函数需要libm库编译
    gcc -o $@ $^ -lm ->指定lib库为libm
    strings -f /lib/*.so | grep “sin”  查找lib库

    C函数字符串拷贝详解:
    memset(*s,int c,int length):初始化数组,指针,结构体,链表.  第二个参数int c指定ASCII值
    void *memset(void *s,int c, size_t n);

    memcpy用来做内存拷贝,拷贝任何数据类型的对象,可以指定拷贝的数据长度
    extern void *memcpy(void *dest, void *src, unsigned int count);

    strcpy就只能拷贝字符串了,它遇到''就结束拷贝
    extern char *strcpy(char *dest,char *src);


    man帮助命令:
    1.man “命令” ->详细命令介绍
    2.man 2 write ->系统调用函数
    3.man 3 “函数名” ->C库函数
        

    vim编辑器功能介绍:
    k:光标移动上一行
    j:光标移动下一行
    h:左移动一个字符
    l: 右移动一个字符
    0或|:光标定位在一行的开头
    $:光标移动在一行的末尾
    w:定位下一个单词
    b:定位上一个单词
    (:定位一句话的开头
    ):定位一句话的结尾
    {或[[:移动段落的开头
    }或]]:移动段落的结尾
    n|:移动到n列
    1G:移动到文件第一行
    G:移动到文件最后一行
    nG或:n --->移动到文件第n行
    H:移动到屏幕顶部
    nH:移动到距离屏幕顶部n行的位置
    M:移动到屏幕中间
    L:移动到屏幕底部
    nL:处理屏幕底部n行的位置
    :x ->移动到x行

    /向下查找
    ?向上查找

    :vsp  vi编辑器打开多个屏幕显示
    :sp


    x ->删除当前光标下的字符
    X ->删除光标前面的字符
    dw     ->删除当前光标到单词结尾的字符
    d^ ->删除当前光标到行首的字符
    d$或D ->删除当前光标到行尾的字符
    dd ->删除整行

    yy ->复制

    p ->粘贴到下一行
    P ->粘贴到上一行

    J ->当前行和下一行连接为一行
    << -->当前行左移一个单位
    >> -->当前行右移一个单位  缩进
    ~ -->改变当前字符的大小写
    ^G:显示当前文件名和状态
    U:撤销对当前行做的修改
    u:撤销操作
    :f ->以百分号的形式显示当前光标在文件的位置,文件名 文件总行数
    :f filename  ->重命名
    :w filename  ->保存修改到
    :e filename  ->打开另一个文件
    :cd dir  -->改变当前工作目录
    :e # -->在两个打开的文件之间切换
    :n  --->vim编辑器打开多个文件,:n 切换到下一个文件
    :P  --->切换到上一个文件
    :N    --->切换到上一个文件
    :r file  ->读取文件在当前行后插入
    :nr file ->读取文件在第n行后边插入


    模式匹配
    ^ 开头
    . 匹配一个字符
    * 匹配零个或多个字符
    $ 匹配一行的结尾
    [] 匹配一组字符

    :set ai ->设置自动缩进
    :set noai ->取消自动缩进
    :set nu ->显示行号
    :set sw=4  -> 设置缩进的空格数
    :set ws "string" 循环搜索字符串
    :set wm=2  设置距离边际2个字符自动换行
    :set ro 设置文件类型为只读
    :set term:输出终端类型
    :set bf:忽略输入的控制字符 (回车 退格)

    运行命令
    :!ls
    感叹号后面跟命令


    shell 字符串空串的判断
    1.-z参数判断空串
    if [ -z “$string” ]
    then
        echo “current $string for NULL”
    fi

    2.x判断空串
    if [ "$string"x = x ]
    then
        echo "NULL"
    else
        echo "NOT MULL"
    fi

    3.length=`echo $string | wc -L`
    if [ $length -eq 0 ]
    then
        echo "NULL"
    fi
    计算字符串的长度

    4.if [ "$string" = "" ]
    then
        echo NULL
    fi

  • 相关阅读:
    lintcode 最长上升连续子序列 II(二维最长上升连续序列)
    lintcode 滑动窗口的最大值(双端队列)
    windows下实现Git在局域网使用
    eclipse导入web项目之后项目中出现小红叉解决办法
    HTTP协议基础
    c++面试常用知识(sizeof计算类的大小,虚拟继承,重载,隐藏,覆盖)
    Codeforces Round #327 (Div. 2) B. Rebranding C. Median Smoothing
    c语言表白程序代码
    矩阵的逆矩阵,伴随矩阵
    document.getElementById()与 $()区别
  • 原文地址:https://www.cnblogs.com/neilwang446/p/6545052.html
Copyright © 2020-2023  润新知