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++)!=‘\0‘);
 return r;
 }
 /*while((*des++=*source++));的解释:赋值表达式返回左操作数,所以在赋值NULL后,循环停止*/
 while(*des++=*source++);等价于
while(1)
{
    *des = *source;
    if(*source == ‘\0‘)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!=’\0’)的简化形式
    {
        //若使用while(*strDest++),则会出错,因为循环结束后strDest还会执行一次++,
        //那么strDest将指向‘\0‘的下一个位置。/所以要在循环体内++;因为要使*strDest最后指
        //向该字符串的结束标志’\0’。
        strDest++;
    }

    while(*strDest++=*strSrc++)
    {
        NULL;//该循环条件内可以用++,
    }//此处可以加语句*strDest=’\0’;无必要
    return address;//为了实现链式操作,将目的地址返回
}
   char *mystrcat(char *dst,const char *src) //用自己的方式实现strcat函数功能
   {
       char *p=dst;  //下面的操作会改变目的指针指向,先定义一个指针记录dst
       while(*dst!=‘\0‘)dst++;
       while(*src!=‘\0‘)*dst++=*src++;
       *dst=‘\0‘;
  return p;  //dst现在指向拼接后的最后一位字符,在这里返回dst,会出现错误
  }

void Delete()
    {
        if(Ptr != NULL) delete [] Ptr;
        Ptr = NULL;
        Len = 0;
    }
char  *Ptr;
char lastSourceChar = Ptr[Len -1];
string strReadBuf("");
时间: 2024-11-05 18:38:43

cc代码学习笔记1的相关文章

&lt;第一行代码&gt;学习笔记1.09

一.四大组件 Activity,Service,Broadcast Receiver,Content Provider. 二.搭建开发环境 三.自动创建android项目 1.创建项目  file---new---android application project application name:Hello World project name:HelloWorld package name:com.test.helloworld 2.创建活动 勾选create activity会创建模板

Android第一行代码学习笔记二---在活动中使用Toast

Toast:是Android系统提供的一种非常好的提醒方式,在程序中可以使用它将一些短小的信息通知给用户,这些信息会在一段时间后自动消失,并且不会占用任何屏幕空间. 首先需要定义一个弹出Toast触发点,接着笔记一的程序,正好上面有个按钮,我们就点击这个按钮的时候弹出来一个Toast,在onCreate()方法中添加如下代码: protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceStat

Android第一行代码学习笔记六---Intent向活动传递数据

@1.向下一个活动传递数据: Intent提供了一系列putExtra()方法的重载,可以把我们想要传递的数据暂存在Intent中,启动了另一个活动后,只需把这些数据再从Intent中取出就可以了,比如firstActivity中有一个字符串要传递到secondActivity中,修改firstActivity中按钮点击事件,代码可以这样编写: button.setOnClickListener(new View.OnClickListener() { public void onClick(V

APM代码学习笔记

libraries目录 传感器 AP_InertialSensor 惯性导航传感器 就是陀螺仪加速计 AP_Baro 气压计 居然支持BMP085 在我印象中APM一直用高端的MS5611 AP_Compass 指南针 AP_GPS GPS定位 还有些飞行姿态的 AP_ARHS 姿态解算 输出Roll Yaw Pitch AP_AttitudeControl 姿态控制 APM飞这么稳就靠它了 硬件抽象层 AP_HAL 头文件 AP_HAL_AVR APM2.X时代的板子 ATMega2560处理

Head First Python(如何向PYPI发布你的代码)学习笔记

Head  First  Python(如何向PYPI发布你的代码) 当我们编写好的一个完美的python程序或者一个好的项目程序时,那时作为程序猿的我们是如何的激动啊,在那激动的时刻如何与他人分享我们胜利的果实呢?看这里~哈哈 为了共享这个模块,需要将它发布出去,在python中,所谓发布(distribution)是指一个文件集合,将这些文件联合到一起允许你构建,打包和发布你的模块,一旦发布,就可以 把模块先安装到你的本地python上,还有就是可以把你的代码上传到PYPI与全世界共享你的代

TP5代码学习笔记:Loader

自动加载Loader类 一.概述 系统会调用Loader::register()方法注册自动加载,在这一步完成后,所有符合规范的类库(包括Composer依赖加载的第三方类库)都将自动加载. 系统的自动加载由两个部分组成: 1.注册系统的自动加载方法 \think\Loader::autoload 2.注册Composer自动加载(符合Composer规范即可) 一个类库的自动加载检测顺序为: 1.是否定义类库映射: 2.Composer自动加载检测: 3.是否为注册的命名空间: 4.检测EXT

1.JAVA中使用JNI调用C++代码学习笔记

Java 之JNI编程1.什么是JNI? JNI:(Java Natibe Inetrface)缩写. 2.为什么要学习JNI?  Java 是跨平台的语言,但是在有些时候仍然是有需要调用本地代码 (这些代码通常是由C/C++编写的). Sun公司提供的JNI是Java平台的一个功能强大的接口.这个JNI接口提供了Java与操作系统本地代码互相调用的功能.(即java调用C++代码) 最简单的Java调用C/C++代码步骤 1.创建TestNativeCode工程,新建cn.itcast包,新建

Android第一行代码学习笔记七---活动的生命周期

@1.返回栈 Android中的活动是可以层叠的,我们每启动一个新的活动,就会覆盖在原活动之上,然后点击Back键就会销毁最上面的活动,下面一个活动就会重新显示出来. Android是使用任务(Task)来管理活动的,一个任务就是一组存放在栈里的活动的集合,这个栈也被称为返回栈(Back Stack).栈是一种后进先出的数据结构,在默认情况下,每当我们启动了一个新的活动,它会在返回栈中入栈,并处于栈顶的位置.而当我们按下Back键或调用finish()方法去销毁一个活动时,处于栈顶的活动会出栈,

hog特征原理详解及matlab代码学习笔记

1.HOG特征: 方向梯度直方图(Histogram of Oriented Gradient, HOG)特征是一种在计算机视觉和图像处理中用来进行物体检测的特征描述子.它通过计算和统计图像局部区域的梯度方向直方图来构成特征.Hog特征结合SVM分类器已经被广泛应用于图像识别中,尤其在行人检测中获得了极大的成功.需要提醒的是,HOG+SVM进行行人检测的方法是法国研究人员Dalal在2005的CVPR上提出的,而如今虽然有很多行人检测算法不断提出,但基本都是以HOG+SVM的思路为主. (1)主