Welcome 微信登录

首页 / 软件开发 / C++

Vdsp(bf561)中的浮点运算(16):fract2x16类型

Vdsp(bf561)中的浮点运算(16):fract2x16类型

Vdsp(bf561)中的浮点运算(16):fract2x16类型2010-02-01 csdn博客 快乐虾由于BF561内部带有两个16位的MAC,因此它将可以在一个周期内进行两个fract16类型的运算。为适应这种特性,vdsp引入了一个称之为fract2x16的类型。它其实是定义为一个int类型的整数,但是其实际意义却是要用高低16位分别来表示两个fract16类型。typedef int _raw32;typedef _raw32 ra...
利用Thunk让C++成员函数变回调函数

利用Thunk让C++成员函数变回调函数

利用Thunk让C++成员函数变回调函数2010-02-01 cnblogs 放牛娃Windows API经常需要回调函数,而在C++开发中面向对象当行其道,若能让C++类的成员函数成为回调函数,简直就是大善!但是C++成员函数都隐含了一个this指针用于指向当前的对象。要实现回调确实不容易。我大约一年前就接触到Thunk技术,甚至也看过利用Thunk实现将成员函数变成回调函数的例子。但是我实在没了解过C++汇编后的样子,很容易钻了牛角尖,看都看不懂,直接...
C++实现不可被拷贝的类

C++实现不可被拷贝的类

C++实现不可被拷贝的类2010-02-01 cnblogs 放牛娃在C++中,类的拷贝主要是通过拷贝构造函数和赋值函数,再者就是为拷贝专门实现的成员方法。由于拷贝构造函数和赋值函数在用户为提供的情况下是由C++编译器自动生成的,而且是public成员,因此默认的C++类都有拷贝功能。若让一个C++类不能被拷贝,可显式地声明类的拷贝构造函数和赋值函数为私有函数,从而达到该类不可被拷贝的目的。下面简单地提供一个基类,任何需要提供不可被拷贝功能的C++类只需从...
C++对象布局及多态实现的探索

C++对象布局及多态实现的探索

C++对象布局及多态实现的探索2010-02-01 bokee.com 潘凯前言本文通过观察对象的内存布局,跟踪函数调用的汇编代码。分析了C++对象内存的布局情况,虚函数的执行方式,以及虚继承,等等。写这篇文章源于我在论坛上看到的一个贴子。有人问VC使用了哪种方式来实现虚继承。当时我写了一点代码想验证一下,结果发现情况比我想象的要复杂。所以我就干脆认真把相关的问题都过了一遍,并记录成本文。我对于C++对象模型的知识主要来自于Lippman的书《Inside...
C++对象布局及多态实现的探索(二)

C++对象布局及多态实现的探索(二)

C++对象布局及多态实现的探索(二)2010-02-01 bokee.com 潘凯虚函数的类的对象布局(1)如果类中存在虚函数时,情况会怎样呢?我们知道当一个类中有虚函数时,编译器会为该类产生一个虚函数表,并在它的每一个对象中插入一个指向该虚函数表的指针,通常这个指针是插在对象的起始位置。所谓的虚函数表实际就是一个指针数组,其中的指针指向真正的函数起始地址。我们来验证一下,定义一个无成员变量的类C040,内含一个虚函数。struct C040{ virtu...
探讨C++实现一个不可被继承的类

探讨C++实现一个不可被继承的类

探讨C++实现一个不可被继承的类2010-02-01 cnblogs 放牛娃C#和Java都提供了一种机制让一个类不能被继承,如C#中的sealed关键字和Java的final关键字,然而C++程序员就没这么好命了。不过C++也可以模拟出这种效果,原理基于:子类的构造函数会自动调用父类的构造函数,同理析构函数也是一样。如果父类的构造函数和析构函数被设为私有的话,那么子类就无法调用,也就达到了父类不可被继承的目的了。原理很简单,按此原理我也实作出一个自认为很...
c/c++支持可变参数的函数

c/c++支持可变参数的函数

c/c++支持可变参数的函数2010-02-01一、为什么要使用可变参数的函数?一般我们编程的时候,函数中形式参数的数目通常是确定的,在调用时要依次给出与形式参数对应的所有实际参数。但在某些情况下希望函数的参数个数可以根据需要确定,因此c语言引入可变参数函数。这也是c功能强大的一个方面,其它某些语言,比如fortran就没有这个功能。典型的可变参数函数的例子有大家熟悉的printf()、scanf()等。二、c/c++如何实现可变参数的函数?为了支持可变参...
C/C++函数调用与函数返回值

C/C++函数调用与函数返回值

C/C++函数调用与函数返回值2010-02-01 csdn博客 xiven函数参数与函数调用1、函数调用的作用:·用实参数向形式参数传递数据;·为获得数据参数及在函数体中声明的变量分配存储空间;·中断现行(调用)函数,把流程向被调用函数的入口处,开始执行被调函数。当参数表为空时,表示该函数不从调用函数接受数据。2、数值参数传值调用:形参只有在函数被调用时,才被分配内存区域,并一直保留到函数返回时被撤销为止。形参和...
Qt学习之路(1):前言

Qt学习之路(1):前言

Qt学习之路(1):前言2010-03-03 51cto FinderCheng我们所使用的Qt,确切地说也就是它的GUI编程部分。C++的GUI编程同Java不同:GUI并不是C++标准的一部分。所以,如果使用Java,那么你最好的选择就是AWT/Swing,或者也可以使SWT/JFace,但是,C++的GUI编程给了你更多的选择:wxWidget, gtk++以及Qt。这几个库我都有接触,但是接触都不是很多,只能靠一些资料和自己的一点粗浅的认识说一下它...
Qt学习之路(2):Hello,world!

Qt学习之路(2):Hello,world!

Qt学习之路(2):Hello,world!2010-03-03 51cto FinderCheng任何编程技术的学习第一课基本上都会是Hello, world!,我也不想故意打破这个惯例——照理说,应该首先回顾一下Qt的历史,不过即使不说这些也并无大碍。或许有人总想知道,Qt这个单词是什么意思。其实,这并不是一个缩写词,仅仅是因为它的发明者,TrollTech公司的 CEO,Haarard Nord和Trolltech公司的总裁E...
Qt学习之路(4):初探信号槽

Qt学习之路(4):初探信号槽

Qt学习之路(4):初探信号槽2010-03-03 51cto FinderCheng看过了简单的Hello, world! 之后,下面来看看Qt最引以为豪的信号槽机制!所谓信号槽,简单来说,就像是插销一样:一个插头和一个插座。怎么说呢?当某种事件发生之后,比如,点击了一下鼠标,或者按了某个按键,这时,这个组件就会发出一个信号。就像是广播一样,如果有了事件,它就漫天发声。这时,如果有一个槽,正好对应上这个信号,那么,这个槽的函数就会执行,也就是回调。就像广...
Qt学习之路(5):组件布局

Qt学习之路(5):组件布局

Qt学习之路(5):组件布局2010-03-03 51cto FinderCheng顾名思义,绝对定位就是使用最原始的定位方法,给出这个组件的坐标和长宽值。这样,Qt就知道该把组件放在哪里,以及怎么设置组件的大小了。但是这样做的一个问题是,如果用户改变了窗口大小,比如点击了最大化或者拖动窗口边缘,这时,你就要自己编写相应的函数来响应这些变化,以避免那些组件还只是静静地呆在一个角落。或者,更简单的方法是直接禁止用户改变大小。不过,Qt提供了另外的一种机制,就...
Qt学习之路(6):API文档的使用

Qt学习之路(6):API文档的使用

Qt学习之路(6):API文档的使用2010-03-03 51cto FinderCheng今天来说一下有关Qt API文档的使用。因为Qt有一个商业版本,因此它的文档十分健全,而且编写良好。对于开发者来说,查看文档时开发必修课之一——没有人能够记住那么多API的使用!在Qt中查看文档是一件很简单的事情。如果你使用QtCreator,那么左侧的Help按钮就是文档查看入口。否则的话,你可以在Qt的安装目录下的bin里面的assist...
Qt学习之路(7):创建一个对话框(上)

Qt学习之路(7):创建一个对话框(上)

Qt学习之路(7):创建一个对话框(上)2010-03-03 51cto FinderCheng首先说明一点,在C++ GUI Programming with Qt4, 2nd中,这一章连同以后的若干章一起,完成了一个比较完整的程序——一个模仿Excel的电子表格。不过这个程序挺大的,而且书中也没有给出完整的源代码,只是分段分段的——我不喜欢这个样子,我想要看到我写出来的是什么东西,这是最主要的,而不是慢慢...
Qt学习之路(9):深入了解信号槽

Qt学习之路(9):深入了解信号槽

Qt学习之路(9):深入了解信号槽2010-03-03 51cto FinderCheng槽函数和普通的C++成员函数没有很大的区别。它们也可以使virtual的;可以被重写;可以使public、protected或者 private的;可以由其它的C++函数调用;参数可以是任何类型的。如果要说区别,那就是,槽函数可以和一个信号相连接,当这个信号发生时,它可以被自动调用。connect()语句的原型类似于:connect(sender, SIGNAL(si...
Qt学习之路(10):Meta-Object系统

Qt学习之路(10):Meta-Object系统

Qt学习之路(10):Meta-Object系统2010-03-03 51cto FinderCheng前面说过,Qt使用的是自己的预编译器,它提供了对C++的一种扩展。利用Qt的信号槽机制,就可以把彼此独立的模块相互连接起来,不需要实现知道模块的任何细节。为了达到这个目的,Qt提出了一个Meta-Object系统。它提供了两个关键的作用:信号槽和内省。面向对象程序设计里面会讲到Smalltalk语言有一个元类系统。所谓元类,就是这里所说的Meta-Cla...
<< 191 192 193 194 195 196 197 198 199 200 >>