摘要: typedef void (*IntegralFunc)(const uchar* src, size_t srcstep, uchar* sum, size_t sumstep,uchar* sqsum, size_t sqsumstep, uchar* tilted, size_t tstep,Size size, int cn );一旦如此,就可以使用IntegralFunc去定义了。如IntegralFunc func;直接看一段代码typedef int (* func)(int ,int ) ;int add(int a,int b){return (a+b);}void main 阅读全文
posted @ 2013-02-24 13:10 yurius 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 一、预备知识―程序的内存分配 一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)― 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap) ― 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 3、全局区(静态区)(static)―,全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。 - 程序结束后有系统释放 4、文字常量区 ―常量字符... 阅读全文
posted @ 2013-02-24 13:09 yurius 阅读(344) 评论(0) 推荐(0) 编辑
摘要: 先说一个容易犯的错误,如果B继承A。B,A都是带参的构造函数,那么,在定义的时候容易出现:no appropriate default constructor available看以下代码:class A{public: A(int k);};A::A(int k){}class B:public A{public: B(int m,int n=1){}};由于在构造B时,须先构造A,但由于已经指定了带参的构造函数,编译器不会自动提供默认的无参构造函数了,所以,没办法给A传参,就无法构造A,应该在B的构造函数中给A传参如:B(int m,int n=1):A(1){}//注意,不能... 阅读全文
posted @ 2013-01-21 19:59 yurius 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 代码:int edita(int& b);int main(){ int a=100;edit(a); printf("a=%d",a);return 0;}int edit(int& b){b=88;return 0;}输出88 阅读全文
posted @ 2013-01-13 20:00 yurius 阅读(389) 评论(0) 推荐(0) 编辑
摘要: 在mainframe的构造函数中创建了一个非模态对话框,在这个非模态对话框的构造函数中创建了另一个非模态对话框,发现第一次创建的非模态对话框将在最前,挡住后来创建的非模态框。把第二个非模态的创建改在第一个非模态的initialdialog中就解决了这一问题若有两个同级的非模态对话框(都在main中创建),那么后创建(create)的将档住先创建的,解决办法是:m_Sc300Form.Create(IDD_SC300_FORM, GetDesktopWindow());(将父窗口设为桌面) 阅读全文
posted @ 2013-01-13 15:10 yurius 阅读(379) 评论(0) 推荐(0) 编辑
摘要: 转载自http://liouwei20051000285.blog.163.com/blog/static/2523674200911535253736/在OnCreat()中创建控件在OnInitUpdate()中初始化控件 int CYourView::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CFormView::OnCreate(lpCreateStruct) == -1) return -1; // TODO: Add your specialized creation code ... 阅读全文
posted @ 2013-01-12 18:23 yurius 阅读(616) 评论(0) 推荐(0) 编辑
摘要: #include#includetypedef struct node_t{int val;struct node_t* front;struct node_t* back;}node;node* creatdlist(node* head){int type_len;node* p=head;printf("输入链表长长度是:");scanf("%d",&type_len);head->front=NULL;while(type_len--){int type_val;node* r=(node*)malloc(sizeof(node)) 阅读全文
posted @ 2013-01-12 13:11 yurius 阅读(139) 评论(0) 推荐(0) 编辑
摘要: #include #includeint num[10]={1,5,2,6,7,3,8,0,4,22};void swap(int* a,int*b){int tmp;tmp=*b;*b=*a;*a=tmp;}void sort(int* s_num,int left,int right){if(left>=right)return;int mid_elm=(left+right)/2;swap(&s_num[left],&s_num[mid_elm]);int last=left;for(int i=left+1;i<=right;i++)if(s_num[i]{ 阅读全文
posted @ 2013-01-12 13:10 yurius 阅读(113) 评论(0) 推荐(0) 编辑
摘要: 原则1、数据成员对齐规则:结构(struct或联合union)的数据成员,第一个数据成员放在offset为0的地方,以后每个数据成员存储的起始位置要从该成员大小的整数倍开始(比如int在32位机为4字节,则要从4的整数倍地址开始存储)。原则2、结构体作为成员:如果一个结构里有某些结构体成员,则结构体成员要从其内部最大元素大小的整数倍地址开始存储。(struct a里存有struct b,b里有char,int,double等元素,那b应该从8的整数倍开始存储。)原则3、收尾工作:结构体的总大小,也就是sizeof的结果,必须是其内部最大成员的整数倍,不足的要补齐。有效对齐字节数=min(数据类 阅读全文
posted @ 2013-01-12 13:09 yurius 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 1 函数后带const,如:ResultType operator()( const unsigned char* a, const unsigned char* b, int size ) const;直接看例子:class R { public: R(int r1, int r2) { R1=r1; R2=r2; } void print(); void print() const; private: int R1, R2; }; void R::print() { cout<<R1<<R2<<endl;cout<<"it' 阅读全文
posted @ 2013-01-11 23:14 yurius 阅读(176) 评论(0) 推荐(0) 编辑