zoukankan      html  css  js  c++  java
  • C指针说明

    只有指针类型的数据才能释放
    
    
    寄存器地址强制类型转换成32位的指针
    将立即数转换成指针     立即数 (Rcc_Base+0x18)  电脑不认识 立即数 所以要转换成指针
    将地址转换成指针: (unsigned int*)(Rcc_Base+0x18)
    取出上面指针的地址    *(unsigned int*)(Rcc_Base+0x18)
    
    *a 是指针变量 存的是地址
    
    **a 是取内容
    
    
    
    C想要获取特定区域的字符
    用 strstr 计算第一个指定字符所在区域 的指针  
    strstr(b,"$GNGGA")+1; 操作后的数据就是从 指定字符的位置开始的
    strstr(b,"
    "); 找到结束处的指针  
    
    b[sumb-sumc] = ''; 将b指针结束的位置换成 两个指针长度相减的长度 就是你需要的长度了
    
    char *a =( char*)&gps_rbuff[0];
    char *b=a;
    char *c ;
    int sumb =0;
    int sumc= 0;
    //substring(b,a,);
                    
    while(strstr(b,"$GNGGA") != NULL)
    {
        b = strstr(b,"$GNGGA")+1;
        sumb = strlen(b);
        c = strstr(b,"
    ");
    
        sumc = strlen(c);
        b[sumb-sumc] = ''; 将b指针结束的位置换成 两个指针长度相减的长度 就是你需要的长度了
    }
    
    
    C语言截取从某位置开始指定长度子字符串方法
    以strncpy为例:
    
    char dest[4] = {""};
    char src[] = {"123456789"};
    strncpy(dest, src, 3);
    puts(dest);
    输出结果为 123
    
    看到了吗,strcpy函数中的参数是字符串数组的名字,而数组名本质上是指针,那么,src+3 就可以实现将 src中从第4个字符开始复制n个字符给 dest 了
    
    char dest[4] = {""};
    char src[] = {"123456789"};
    strncpy(dest, src+3, 3);
    puts(dest);
    输出结果为 456
    
    
    
    ---------------------------------------------分割字符串和 截取字符串   案例--------------------------------------------------------------
    
    result = strtok(b,",");
                    while(result!=NULL){
                        count++;
                        if(count ==2 && strlen(result)==6){
                            /* hhmmss */
                            for(i=0;i<strlen(result);i++){
                                if(i<2){
                                    strncpy(hour,result,2);
                                }else if( i>=2 && i<4){
                                    strncpy(min,result+2,2);
                                }else if(i>=4){
                                    strncpy(sec,result+4,2);
                                }
                            }
                        }else if(count ==4 && strlen(result)>7){
                            /* ?3?è */
                            strncpy(lat,result+2,2);
                            strcat(lat,".");
                            strncpy(lat1,result+2,2);
                            strcat(lat,lat1);
                            strncpy(lat1,result+5,strlen(result-5));
                            strcat(lat,lat1);
                            
                        }else if(count ==6 && strlen(result)>7){
                            /*  ?-?è */
                            strncpy(lon,result+2,2);
                            strcat(lon,".");
                            strncpy(lon1,result+2,2);
                            strcat(lon,lon1);
                            strncpy(lon1,result+5,strlen(result-5));
                            strcat(lon,lon1);
                        }else if(count ==10 && strlen(result)==6){
                            /* ddmmyy(è????ê)  */
                            strncpy(year,result+4,2);
                            strncpy(mon,result+2,2);
                            strncpy(day,result,2);
                        }
                        result = strtok(NULL,",");
                    }
    
    
    ----------------------------------------数组内存回收
    memset(GPSInfo,0,strlen(GPSInfo));
    ----------------------------------------指针变量内存回收
    char *a="";
    free(a);
    a=NULL;
    
    STM32 中能不用free 最好不用 会导致一些不可预知的错误
    
    -----------------------------------------拼接字符串
            char content[120];
    sprintf(content, "
     %d GPSData: 经度 %d   ,纬度:  %d, data:%d ,time: %d , hour: %d ,min: %d, sec: %d   ", count,latitude,longitude
                                        ,gpsdate,gpstime,gpshour,gpsmin,gpssec);
  • 相关阅读:
    org.springframework.transaction.CannotCreateTransactionException Could not open
    org.springframework.web.util.NestedServletException Handler processing failed; n
    SSM 后台封装的有值, 到前台打印的时候没有值
    javax.net.ssl.SSLHandshakeException sun.security.validator.ValidatorException PK
    a 链接点击下载
    form图片上传遇到错误
    forever 启动nodejs
    nodejs 新建项目
    nodejs 安装
    nodejs 爬虫模板 map&array 数据模型
  • 原文地址:https://www.cnblogs.com/LKit/p/8881479.html
Copyright © 2011-2022 走看看