
C++与汇编
Farmwang
博采众长,兼收并蓄!
展开
-
逻辑表达式汇编解析
坊原创 2017-07-14 14:29:30 · 861 阅读 · 0 评论 -
c++ protected
原创 2017-07-31 22:51:05 · 260 阅读 · 0 评论 -
C++调用构造函数过程
class A {public:int a1;int a;A(){a=1000;}A(int r){a1=33333;}virtual int getdata(){return 100;}virtual int getD(){return 200;}};class B {public:int b;B(){b=30000;}vi原创 2017-08-07 22:44:08 · 739 阅读 · 0 评论 -
c++类堆区分配过程
1:调用外部函数在堆区分配指定大小的空间;用edi寄存器传大小2:调用构造函数初始化堆区原创 2017-08-07 22:57:53 · 552 阅读 · 0 评论 -
C++友元类不占用空间
原创 2017-08-01 22:40:09 · 448 阅读 · 0 评论 -
c++ delete与new
1:调用系统函数开辟一个大的空间!2:逐个调用构造函数进行初始化。3:Delete 时调用系统函数释放申请的资源。原创 2017-08-08 20:09:03 · 271 阅读 · 0 评论 -
C++调用析构函数过程
对象生命结束后系统会自动调用析构函数原创 2017-08-08 20:15:41 · 754 阅读 · 0 评论 -
C++对象空间分配过程
(一)内存分配在数据段 全局变量或是局部静态变量,分配在数据段。(二)内存分配到栈由C++缺省创建和撤销,自动调用构造函数和析构函数,该方法创建的对象调用类方法时,必须用“.”(三)内存分配到堆用new 动态创建的对象,用delete来撤销该对象,C++用new创建对象时返回的是一个对象指针;new创建的对象不是用“*”或“.”来访问该对象的成员原创 2017-08-08 22:22:25 · 2802 阅读 · 0 评论 -
libc++abi Specification
void* __cxa_allocate_exception(size_t thrown_size) throw();Effects: Allocates memory to hold the exception to be thrown.thrown_size is the size of the exception object. Can allocate additional转载 2017-08-09 22:54:15 · 794 阅读 · 0 评论 -
虚函数调用 汇编代码
原创 2017-08-02 23:14:24 · 551 阅读 · 0 评论 -
c++一般函数与虚函数的区别
原创 2017-08-03 21:40:27 · 437 阅读 · 0 评论 -
C++虚函数详解
1:在计算机中虚函数表也是占用一定到的内存空间的,且虚函数表由于一旦产生就具有不变性,所以编译器就会经量把它放到稳定(或者说是只读)的内存区。虚函数表vtable在Linux/Unix中存放在可执行文件的只读数据段中(rodata)。在gcc编译器的实现中虚函数表vtable存放在只读数据段.rodata中。2:实例化类的对象时,对象内存中除了成员变量的大小,还有一个虚函数表指针,而且虚函数表转载 2017-08-03 23:11:09 · 434 阅读 · 0 评论 -
Thread.join
join 是让当前主线程等待子线程执行完才退出。 主线程向下运行时,碰到了t1.join(),t1要申请加入到运行中来,要CPU执行权。* 这时候CPU执行权在主线程手里,主线程就把CPU执行权给放开,陷入冻结状态。* 活着的只有t1了,只有当t1拿着执行权把这些数据都打印完了,主线程才恢复到运行中来 回到Join,这里所说的调用方就是主线原创 2017-08-13 11:21:56 · 307 阅读 · 0 评论 -
c++ 构造函数
原创 2017-08-07 21:52:34 · 256 阅读 · 0 评论 -
c++友元函数
通过友元函数,外部函数可以访问类中的私有成员和保护成员。友元函数是可以直接访问类的私有成员的非成员函数。它是定义在类外的普通函数,它不属于任何类.但需要在类的定义中加以声明,声明时只需在友元的名称前加上关键字friend,其格式如下: friend 类型 函数名(形式参数); 友元函数的声明可以放在类的私有部分,也可以放在公有部分,它们是没有区别的,都说明原创 2017-07-31 16:41:29 · 345 阅读 · 0 评论 -
循环控制语句for while do-while if switch
1:For 语句循环控制int main(){ int a=1; int b=0; int c=0;for(int i=0;i<99;i=i+2){ b=++a; c=a++;}} .file "k03.c" .text .globl main .type main, @functionmain:.LFB0: .cfi_startproc push原创 2017-07-14 09:28:07 · 525 阅读 · 0 评论 -
运算符汇编解释
1:a++ ,与++a的区别int main(){ int a=0; int b=0; int c=0; b=++a; c=a++;}/**********************************/.file "b01.cpp" .text .globl main .type main, @functionmain:.LFB0: .cfi_startpr原创 2017-07-14 11:55:41 · 1357 阅读 · 0 评论 -
C++参数传递过程
struct bird{ int x,y,z; float flying; char *p;};bird bir,b1;bird test(bird a,bird b){ a.x=b.x; a.y=b.y; a.z=b.z; a.flying=b.flying; a.p=b.p; b.x=100; b.y=200;}int main(){ b1.x=原创 2017-07-16 17:05:48 · 553 阅读 · 0 评论 -
C++汇编数据存储定义
1:inta[800]与 int t[6]的区别: a 在bss段,t在data段2:原创 2017-07-20 23:15:23 · 298 阅读 · 0 评论 -
类数据与函数的关系
1:定义一个Class Point2:定义全局变量 Point类型 pp3:执行pp的function setPoint执行setPoint函数时,传递参数时把pp的地址和参数全部传到函数的代码段。地址传到rdi寄存器。原创 2017-07-30 17:38:01 · 530 阅读 · 0 评论 -
C++内存对齐
二,怎么算内存对齐大小(理论)对于简单类型,如int,char,float等,其对齐大小为其本身大小,即align(int) == sizeof(int),align(char)==sizeof(char),等等。对于复合类型,如struct,class,其本身并无所谓对齐,因为CPU没有直接存取一个struct的指令。对于struct而言,它的对齐指的是它里面的所有成员变转载 2017-07-30 18:04:27 · 294 阅读 · 0 评论 -
asm comm align
原创 2017-07-30 18:50:40 · 289 阅读 · 0 评论 -
多维数组 函数参数传递
数组名以地址 作为参数传递,函数执行后会修改原先数组值,传地址#include int data[2][2]={ {1,1},{2,22}};using namespace std;int sum(int d[][2],int x){d[0][1]=666; return d[1][x];}int main(){int x=sum(data,1);int x1=data[原创 2017-07-18 22:08:03 · 620 阅读 · 0 评论 -
char*="xxx"
#include using namespace std;char *pr="i am well";void change(char* p){ //*(p+2)='2';}int main(){int x,y,z;change(pr);cout<<*pr<<endl;}"i am well" 是字符常量无法修改,所以报错!#inc原创 2017-07-18 23:08:48 · 1600 阅读 · 0 评论 -
C++继承方式
class有public, protected, private三种继承方式,它们相应地改变了基类成员的访问属性。1.public继承:基类public成员,protected成员,private成员的访问属性在派生类中分别变成:public, protected, private2.protected继承:基类public成员,protected成员,private成员的访问属性原创 2017-07-31 14:38:24 · 239 阅读 · 0 评论 -
C++ 有 super么?
C++没有super 关键字,因为C++ 支持 多重继承,所以super无法获得 究竟 是那一个父类 的同名方法,数据!父类::data/function改为:原创 2017-07-31 15:05:28 · 3364 阅读 · 0 评论 -
友元函数的继承
基类的友元函数仍然是派生类的友元函数子类A继承了基类Test,同时也继承了Test的友元函数原创 2017-07-31 18:54:59 · 1744 阅读 · 0 评论 -
thread::detach
detach()用于让线程不受句柄控制!终止的线程所占用的资源也并不会随着线程的终止而得到释放!__detachstate,表示新线程是否与进程中其他线程脱离同步, 如果设置为PTHREAD_CREATE_DETACHED 则新线程不能用pthread_join()来同步,且在退出时自行释放所占用的资源。缺省为PTHREAD_CREATE_JOINABLE状态。这个原创 2017-08-13 17:32:52 · 1510 阅读 · 0 评论