
c/c++语言特性
守望尼罗河畔的初心
不喜欢debug的疯子
展开
-
C++class默认生成4个函数
对于一个空类,编译器默认生成四个成员函数:默认构造函数、析构函数、拷贝构造函数、赋值函数一,默认构造函数 默认构造函数(default constructor)就是在没有显式提供初始化式时调用的构造函数。它由不带参数的构造函数,或者为所有的形参提供默认实参的构造函数定义。如果定义某个类的变量时没有提供初始化式就会使用默认构造函数。 如果用户定义的类中没有显式的原创 2014-06-27 20:57:37 · 1324 阅读 · 0 评论 -
C语言位操作
C语言提供6个按位操作>> 右移 无符号数或者是正数不用考虑是左端补0, 负数看实现【一些实现补0,一些保留符号位,这种比较科学吧】~ 按位取反 【一元运算符】& 按位与^ 按位异或| 按位或为了保证可移植性,寄存器当然用unsinged char 或者unsinged int ,当然更详细一点的posix标准里的1字节原创 2016-04-28 00:22:43 · 1274 阅读 · 0 评论 -
关于递归
递归满足2个条件: 1)有反复执行的过程(调用自身) 2)有跳出反复执行过程的条件(递归出口)从3个简单的小问题看递归问题1:利用递归实现:逆向打印字符串void strRev(char a[],int start){ if(a[start]!='\0') { strRev(a,s原创 2014-06-27 20:47:26 · 509 阅读 · 0 评论 -
深入指针
1.函数指针函数名被使用时总是由编译器把它转化成 函数指针。so: int func(int);then: int (*pf)(int) = &func; int (*pf)(int) = func;这两种是等价的to then:调用: int a ; a = f(25);原创 2014-06-27 20:46:27 · 662 阅读 · 0 评论 -
char **, char *a[] ,char (*a)[] 思考
1.指向数组的指针 int (*a)[ 10] ; (*a) 代表的是一个指针, 接着[] 下标的引用,解释了a指向int类型的数组。 int matix[3][10]; 初始化: int (*a)[10] =matix; 它使得a 指向 matiix的第一行 如果需要一个指针逐个访问整原创 2014-06-27 20:52:13 · 1437 阅读 · 0 评论 -
边界计算问题
1.首先考虑简单情况下的特列,然后将得到的结果外推。2.仔细计算边界。这里对边界问题经常容易出错,根据c语言下标的习惯的一种编程技巧1.入界点(小的值)包括在取值范围内2.出界点(大的值)不包括在取值范围内例如:for(int i=0;i入界点为0 出界点为10(我们也不需要10作为下标)。另外一种考虑不对称边界的情况。#d原创 2014-06-27 20:53:44 · 1352 阅读 · 0 评论 -
c库函数 strring.h字符串操作(部分常用实现)
作为C程序员来说1.size_t strlen( char const * string);原创 2014-06-27 20:35:51 · 1417 阅读 · 0 评论 -
c++类的静态成员
类的静态成员必须初始化:否则出现无法解析的外部符号 "private: static double SavingAccount::annualInterestRate" (?annualInterestRate@SavingAccount@@0NA)why??猜想链接器无法找到这个符号c++对类的加载,没有在内存中分配空间,所以导致无法找到符号链接正确解答:原创 2014-06-27 21:01:00 · 619 阅读 · 0 评论 -
c++ 继承与权限
基类中 继承方式 子类中 public & public继承 => public public & protected继承 => protected public & private继承 => private protected & public原创 2014-06-27 20:55:43 · 2361 阅读 · 0 评论 -
c++构造函数和初始化列表
1.构造函数对对象的创建过程1.无关紧要(trivial)的默认构造函数【无用构造函数】 用户并没有显示地定义默认构造函数,编译器会为它自动生成一个无关紧要(trivial)的默认构造函数,生成的默认构造函数什么也不做,只是为了保证程序能够正确运行而已。2.非平凡(non-trivival)默认构造函数【有用构造函数】 当重写了默认的构造函数,原创 2014-06-27 20:56:33 · 684 阅读 · 0 评论 -
c++多态
虚函数: 一旦某个函数被声明成虚函数,则在他的派生类中它都是虚函数,所以子类的虚函数前 的virtual 可不写。1函数重载: 同一个类中存在同名但是参数不同的函数,这样就是函数重载,函数重载在编译期间便能确定下来。2、函数覆盖函数覆盖也被称为函数重写(override),是子类重新定义基类虚函数的方法。构成函数覆盖的条件:(1)基类的函数必须是原创 2014-06-27 20:58:30 · 691 阅读 · 0 评论 -
RK3288 uvc摄像头调试
曾经在全志平台上调试过UVC摄像头,当时调试过程比较流畅,丝毫没有碰上异常情况,这一次在RK上碰到较大的困难,下面介绍一下我的调试过程。首先,不用说当然在内核配置中配置上UVC摄像头,重新编译内核,烧录。Device Drivers ---> Multimedia support ---> Video For Linux[*] Enable Video Fo原创 2015-10-31 20:30:51 · 15509 阅读 · 11 评论