- 博客(26)
- 资源 (5)
- 收藏
- 关注
原创 计算字符串长度注意
0)s1为字符串1)while(*s1) s1++;2)while(*s1++) ; 1)和2)不同,1)的结果为*s1 == '\0',2)的结果为*(s1+1) == '\0',即*(s1)为'\0'的下一个。
2014-06-29 18:54:47 820
原创 C——通过调用函数分配内存
1)可以在被调用函数中,可以把动态分配的存储位置地址,赋值给指针类型返回值(不同于被调用函数的自动变量地址)。2)如果想把被调用函数中,获得的地址数据传递给调用函数,可以使用指针类型返回值或者二级指针类型 形参(整型传参,取地址)。 1 #include 2 #include 3 4 void fun(int* p){ 5 p = (int*)ma
2014-06-29 17:34:50 1128
原创 QT——模型/视图(model/view)
数据项中引入模型/视图架构,可以方便的将数据与表现层分开。-------------------------------------为每个视图都提供了一个默认的委托——可以使用自定义的委托来替换显示没一项,并为可编辑项提供一个合适的编辑器。-------------------------------------模型:用于存储数据项(data item)。纯粹的视图部件:Q
2014-06-29 01:28:51 9925 2
原创 S5PV210——start.s/tshell.lds
1. .text2. .global start3. .extern main4. 5. start:6. 7. clear_bss:8. ldr r0, bss_start /* find start of bss segment */9. ldr r1, bss_end
2014-06-26 00:11:01 978
原创 S5PV210——启动(iROM)
x210_usb.bin会初始化DDR控制器,并为下载程序到DDR中做好准备。通过USB下载x210_usb.bin到内存0xd0020010地址处,该程序用于初始化T-PAD上的DRAM控制器等。
2014-06-25 23:51:11 1625
原创 UnixC——进程间通信(IPC)
进程间通信 - IPCUnix / Linux 系统基于多进程,进程和进程之间经常做数据的交互,这种技术叫进程间通信。常见的IPC:1)文件2)信号3)管道4)共享内存5)消息队列6)信号量集7)网络编程(socket)... ...其中,管道是最古老的IPC之一,目前较少使用。共享内存、消息队列和信号量集 遵循相同的规范,因此编码上有很多的共同点,
2014-06-15 17:23:45 1186
原创 编写高质量代码——在正确的场合下使用恰当的特性
虚函数:虚函数机制的实现是通过虚函数表和指向虚函数表的指针(存放在对象的空间中)来完成的。1)空间方面:每个类只用一个虚函数表的拷贝,故其占用的空间不是很大。2)时间方面:虚函数的调用开销包括两次整型加法和一次指针间接引用的开销。其动态绑定的实现步骤如下:(a)根据对象的虚指针VPtr找到该对象对应的虚函数表VTable,所需的开销仅是一次偏移量调整(整型加法)加上一次指针间接运算
2014-06-14 17:43:48 884
原创 编写高质量代码——慎用私有继承
在C++中,public 公有继承被视为”is-a“关系。class Animal{public : void Eat() { ... }};class Tiger : public Animal{public: bool IsKing() {...}};// Tiger 是一种Animal如果public换成private,编译器不能将派生类对象转
2014-06-14 16:17:16 1020
原创 编写高质量代码——“零星”总结(续3)
明白在C++中如何使用CC++中使用C的程序库,实现C++和C的混合编程:extern "C" { /* code */ }一定要加在C++的代码文件中才能起作用。//C编译器编译函数时不带函数的类型信息,只包含函数符号名字;而C++编译器为了实现函数重载,在编译时会带上函数的类型信息。extern "C"的作用:告诉C++链接器寻找调用函数的符号时,采用C的方式。==========
2014-06-14 14:25:01 921
原创 编写高质量代码——“零星”总结(续2)
newdelete与new[]delete[]必须配对使用//注意,由于内置数据类型没有构造、析构函数,所以针对内置数据类型时,释放和内存使用delete或delete[]的效果是一样的。例如:int *pArray = new int[10];...//processing codedelete pArray; //等同于delete[] pArray;虽然针对
2014-06-05 23:12:14 943
原创 编写高质量代码——提防隐式转换带来的麻烦
在C/C++ 语言,允许在不同类型的数据之间进行某一操作或混合操作,如果类型不同,则要将数据转换成相同的数据类型(隐式转换和显示转换)。=========================隐式转换主要发生的情形:▉基本类型之间的隐式转换C/C++ 中规定的两个通用转换原则:1)为防止精度损失,类型总是被提升为较宽的类型。2)所有含有小于整数类型的算术表达式在计算之前其类型都被
2014-06-05 22:35:33 1064
原创 编写高质量代码——“零星”总结
不要让main函数返回void//在C++中绝对没有出现过 void main(){ }这样的函数定义,在C语言中也是。//两种 main 的定义方式:int main( void );// int main( int argc, char** argv )//第一版的C语言中只有 int 一种数据类型,为了兼容需要,不明确标明
2014-06-05 00:06:04 1248
原创 编写高质量代码——避免在构造析构函数中调用虚函数
#include using namespace std;class Base{ public : Base(){ cout Init(); } virtual void Init(){ cout } };
2014-06-01 20:54:05 934
原创 编写高质量代码——谨防因构造函数抛出异常而引发的问题
在C++构造函数中,正确的异常处理方法应该是:发生异常时先将已经创建的东西释放掉,然后再抛出异常给上层调用代码处理。
2014-06-01 19:18:04 822
原创 C++——虚函数、多态
C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。
2014-06-01 12:33:57 878
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人