zoukankan      html  css  js  c++  java
  • cc代码学习笔记1

    #define
    #define INT32  int       #define INT8  char            #define CHAR    char
    #define SSHORT   signed short                #define   INT16    signed short
    
    #define _ASSERT_STR(z) _ASSERT_TMP(z)
    #define _ASSERT_TMP(z) #z  //变成字符串
    
    C语言中的__FILE__用以指示本行语句所在源文件的文件名
    C语言中的__LINE__用以指示本行语句在源文件中的位置信息
    __func__,它指示所在的函数
    #line来重新设定__LINE__的值
    
    typedef ssize_t (*zmss_readlinkP)(const char*, char*, size_t); ssize_t是类型
    
    typedef QTSS_Error  (*QTSS_CallbackProcPtr)(...);//声明函数指针类型
    
    typedef QTSS_Error  (*QTSS_CallbackProcPtr)(...); //声明函数指针类型,它的类型变量可以为函数名即函数地址,任意参数QTSS_Error返回类型。
    Strcpy
    #include<iostream>
    #include<stdlib.h>
    using namespace std;
    void main()
    {
    int a = 3;
    int b = 4;
    int c = (b=a);
    cout << "c:" << c<<endl;//返回赋的值3
    system("pause");
    }
    
    
    char* strcpy(char* des,const char* source)
     {
     char* r=des;
     assert((des != NULL) && (source != NULL));
     while((*des++ = *source++)!='');
     return r;
     }
     /*while((*des++=*source++));的解释:赋值表达式返回左操作数,所以在赋值NULL后,循环停止*/
     while(*des++=*source++);等价于
    while(1)
    {
        *des = *source;
        if(*source == '')break;
        source++;
        des++;
    }
    
    
    strcat拼接函数
    //将源字符串加const,表明其为输入参数
    char* strcat(char* strDest , const char*s trSrc)
    {
        //后文return address,故不能放在assert断言之后声明address
        char* address=strDest;
        assert( (strDest!=NULL)&&(strSrc!=NULL) );//对源地址和目的地址加非0断言
        while(*strDest)//是while(*strDest!=’’)的简化形式
        {
            //若使用while(*strDest++),则会出错,因为循环结束后strDest还会执行一次++,
            //那么strDest将指向''的下一个位置。/所以要在循环体内++;因为要使*strDest最后指
            //向该字符串的结束标志’’。
            strDest++;
        }
     
        while(*strDest++=*strSrc++)
        {
            NULL;//该循环条件内可以用++,
        }//此处可以加语句*strDest=’’;无必要
        return address;//为了实现链式操作,将目的地址返回
    }
       char *mystrcat(char *dst,const char *src) //用自己的方式实现strcat函数功能
       {
           char *p=dst;  //下面的操作会改变目的指针指向,先定义一个指针记录dst
           while(*dst!='')dst++;
           while(*src!='')*dst++=*src++;
           *dst='';
      return p;  //dst现在指向拼接后的最后一位字符,在这里返回dst,会出现错误
      }
     
    void Delete()
        {
            if(Ptr != NULL) delete [] Ptr;
            Ptr = NULL;
            Len = 0;
        }
    char  *Ptr;
    char lastSourceChar = Ptr[Len -1];
    string strReadBuf("");
  • 相关阅读:
    Eclipse 导入项目乱码问题(中文乱码)
    sql中视图视图的作用
    Java基础-super关键字与this关键字
    Android LayoutInflater.inflate(int resource, ViewGroup root, boolean attachToRoot)的参数理解
    Android View和ViewGroup
    工厂方法模式(java 设计模式)
    设计模式(java) 单例模式 单例类
    eclipse乱码解决方法
    No resource found that matches the given name 'Theme.AppCompat.Light 的完美解决方案
    【转】使用 Eclipse 调试 Java 程序的 10 个技巧
  • 原文地址:https://www.cnblogs.com/yaowen/p/4800212.html
Copyright © 2011-2022 走看看