C language
文章平均质量分 70
yili_xie
曾梦想仗剑走天涯
展开
-
c++基础语法--嵌套类
在android source中到处都能看到嵌套类(nestedclasss)的踪影,比如mutex类中的Autolock,cameraservice中的client,camerahardware中的camera_preview,仔细去查了为什么要使用嵌套类,好像没有一个很官方的答案,大家也争吵得很厉害,但归结起来大家用得到它的地方: 首先要说明一下外部类原创 2009-11-12 17:03:00 · 1287 阅读 · 0 评论 -
12月国外语言榜一个贼点睛的评论
凡是公司发明的语言,比如java,也许会流行,但时间不长,甚至拖累公司被收购,相反,个人发明的语言,比如pascal,perl,lisp,c,c++,则长久地流行,成为经典,比如c,c++,散发着永恒的魅力,这是一个规律,因为个人发明的语言,来自一两个天才的灵感,好比微积分,相对论,蒙娜丽莎的微笑,它们都是永恒的,而公司发明的语言,则是众多凡人拼凑起来的,庞大,中庸,它是被硬造出来的,转载 2009-12-08 18:46:00 · 1695 阅读 · 5 评论 -
static和extern c
1、staticstatic以前也说过,在这里只强调一点,就是static声明的静态变量(不是静态成员变量),每个文件都有一个副本。比如说//static.hstatic int n ;//one.cpp#include"static.h"void print(void ){ n = 6 ; printf("%d原创 2009-11-12 17:31:00 · 1145 阅读 · 2 评论 -
c++基础语法(构造函数初始化列表)
C++为类中提供类成员的初始化列表类对象的构造顺序是这样的:1.分配内存,调用构造函数时,隐式/显示的初始化各数据成员2.进入构造函数后在构造函数中执行一般计算使用初始化列表有两个原因:1.必须这样做: 如果我们有一个类成员,它本身是一个类或者是一个结构,而且这个成员它只有一个带参数的构造函数,而没有默认构转载 2009-11-12 17:18:00 · 17466 阅读 · 2 评论 -
关于const
根据const修饰的类型不同,它实现着不同的功能,最简单的就是定义常量。在c中用得比较多的是使用#define来定义常量,使用宏来定义常量和使用const定义常量主要有以下几个区别:首先,const支持类型检查,而#define不支持。其次,const定义的类型和其他变量一样,都是有局域限制的,即有作用范围,而宏定义的作用范围是从定义开始到程序结束,当然也可以使用#undef来结束定义原创 2009-11-12 17:01:00 · 748 阅读 · 0 评论 -
智能指针和弱引用
智能指针和弱引用在android中可以广泛看到的template<typenameT> classSp句柄类实际上是android为实现垃圾回收机制的智能指针。智能指针是c++中的一个概念,因为c++本身不具备垃圾回收机制,而且指针也不具备构造函数和析构函数,所以为了实现内存(动态存储区)的安全回收,必须对指针进行一层封装,而这原创 2009-11-12 17:27:00 · 3655 阅读 · 1 评论 -
函数指针的一些概念
函数指针最近看android camera的source,发现大量的call back,多线程,有必要对其中的基础:函数指针复习一下,觉得函数指针主要还是用在call back函数,以及多线程多进程编程中。函数在被编译器编译后就是一段二进制码,而这段二进制码有一个入口地址,而这个入口地址就是函数指针的值了。首先看函数指针的语法,举一个最简单的例子,要创建一原创 2009-11-12 17:27:00 · 1218 阅读 · 0 评论 -
c++基础语法---普通继承
1、首先说一下类的成员函数或者成员变量的3个属性:public: 对于对象和成员函数都是可见的,即可以引用protected: 对于成员函数是可见的,但对于对象来说是不可见的,这个声明主要是用在继承中,下面将讨论private: 对于成员函数是可见的,对于对象是不可见的2、然后看一下继承方式:基类成员关键原创 2009-11-12 17:22:00 · 1380 阅读 · 0 评论 -
c++关键字mutable
1、关于mutable关键字先说用法,mutable关键字只能修饰非静态以及非常量成员变量,使用mutable修饰的成员变量在const函数中的值是可以修改的。比如说下面的代码:classDemo{public: Demo() {} ~Demo() {}public: boolgetFlag()const {转载 2009-11-12 17:20:00 · 1121 阅读 · 0 评论 -
编译错误:undefined reference to `vtable for
今天编译camera程序,总是报这样的错误:hardware/libcamera/CameraHardwareStub.h:125:对‘vtable for android::CameraHardwareStub::V4l2Camera’未定义的引用collect2: ld returned 1 exit status虽然也知道是链接错误,但是总不知道错误在哪,后来发现自原创 2009-11-12 17:29:00 · 19914 阅读 · 1 评论 -
c++基础语法(构造函数和析够函数)
说实话c++还是以前在学校的时候用过的,从毕业到现在一直用c嵌入式编程,现在重新搬出C++语法,如果理解上有错误的地方,还请路过的朋友多指正~~~构造函数用来构造一个对象,主要完成一些初始化工作,如果类中不提供构造函数,编译器会默认的提供一个默认构造函数(参数为空的构造函数就是默认构造函数) ;析构函数是隐式调用的,delete对象时候会自动调用完成对原创 2009-11-12 17:20:00 · 1506 阅读 · 0 评论 -
c/c++中变量的声明和定义
不管是函数还是变量的声明,都是为了告诉编译器我要使用这个变量或者函数了,用于类型检查。在定义的时候编译器是不会分配任何内存的,比如下面的函数:void func() { int a ; int b = 0 ; a = 0 ;}当函数执行到int a ;的时候,这是一个声明,编译器不会为其分配内存空间。当执行转载 2009-11-12 17:50:00 · 944 阅读 · 1 评论 -
c语言一些概念的区分
1、 算术移位和逻辑移位算术移位主要对应着计算机的算术计算,因此算术左移n位相当于乘了2的n次方,而算术右移相当于除以了2的n次方,并去掉了余数。因此算术移位是保留符号位的移位操作:Mov ax 0100 0110 1001 1100BMov cl 3Sal ax cl //原创 2009-11-12 17:26:00 · 1260 阅读 · 0 评论 -
c++基础语法---虚继承
虚继承的概念的提出主要是为了解决C++多继承的问题,举个最简单的例子:class animal{ public : void op() {cout };class tiger : public animal { public : void原创 2009-11-12 17:22:00 · 1211 阅读 · 1 评论 -
字节对齐的问题
字节对齐 1. 基本概念字节对齐:计算机存储系统中以Byte为单位存储数据,不同数据类型所占的空间不同,如:整型(int)数据占4个字节,字符型(char)数据占一个字节,短整型(short)数据占两个字节,等等。计算机为了快速的读写数据,默认情况下将数据存放在某个地址的起始位置,如:整型数据(int)默认存储在地址能被转载 2009-11-12 17:21:00 · 906 阅读 · 0 评论 -
c++关键字static
C++中的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static。前者应用于普通变量和函数,不涉及类的问题。 A. 面向过程程序设计中的static关键字1) 静态全局变量 在全局变量前,加上关键字static,该变量就被定义成为一个静态全局变量。静态全局变量定义和使用类似:转载 2009-11-12 17:19:00 · 971 阅读 · 0 评论 -
解析大端模式和小端模式
解析大端模式和小端模式0推荐 作者:王正伟,华清远见嵌入式学院讲师。一、概念及详解在各种体系的计算机中通常采用的字节存储机制主要有两种: big-endian和little-endian,即大端模式和小端模式。先回顾两个关键词,MSB和LSB:MSB:Most Significant Bit ------- 最高有效位转载 2010-01-06 16:02:00 · 1741 阅读 · 1 评论