c/c++
sjjbupt
这个作者很懒,什么都没留下…
展开
-
strcpy函数的实现要点
static char * strcpy(char *dest, const char *src)//1.要注意,源串要有const修饰 { assert(dest != NULL && src != NULL);//2.判定指针是否合法 char *ret =原创 2011-09-09 18:08:28 · 866 阅读 · 1 评论 -
成员函数、虚函数、this指针
1、成员函数的实现机制和普通(全局)函数没有本质区别,对编译器而言,经过名称处理以后(在函数名前加上命名空间、类名),一个成员函数就是普通函数了,在编译后的代码区域有确定的函数体和入口地址。最大的差别在于发生调用时,对于成员函数,编译器会隐含语句push this,其中this指针指向对象的地址,这就是操作所需要的数据的所在。编译后的成员函数调用可能是:...push thiscall转载 2011-11-13 20:28:50 · 1332 阅读 · 0 评论 -
写一个函数,求两个整数的之和,要求在函数体内不得使用+、-、×、÷
题目:写一个函数,求两个整数的之和,要求在函数体内不得使用+、-、×、÷。分析:这又是一道考察发散思维的很有意思的题目。当我们习以为常的东西被限制使用的时候,如何突破常规去思考,就是解决这个问题的关键所在。看到的这个题目,我的第一反应是傻眼了,四则运算都不能用,那还能用什么啊?可是问题总是要解决的,只能打开思路去思考各种可能性。首先我们可以分析人们是如何做十进制的加法的,比如是如何得出5+转载 2011-11-13 20:41:54 · 1235 阅读 · 5 评论 -
g++编译pthread_create函数的注意点
1.在c++中函数的参数是和函数一起进行编译的,参数列表为:int pthread_create(pthread_t*, const pthread_attr_t*, void* (*)(void*), void*),因此回调函数定义时参数中一定要有个void*的参数2.pt原创 2011-09-30 15:02:41 · 4919 阅读 · 0 评论 -
零碎的笔记
1.Vector通过实现三大函数为构造复制函数和operate = 提供深复制。2.递归总能被去除,虽然非递归执行速度快,但是有时候程序清晰性却差,所以可以用递归,但是要避免尾递归(递归语句在最后一行)。3.若map是通过常量引用传递,则不可用[ ]操作符。4.如果不原创 2011-08-20 17:57:32 · 549 阅读 · 0 评论 -
循环根据iterator删除相应元素的代码
错误的方法:for (MAP::iterator it = theMap.begin(); theMap.end()!=it; ++it) { if (canDrop(*it)) { // 错误:当erase执行以后,it立刻就失效了,在执原创 2011-08-20 17:28:15 · 539 阅读 · 0 评论 -
类的访问函数和修改函数
什么是?访问函数:只检测而不改变对象状态的函数。修改函数:改变对象状态的函数。如何定义两类函数?默认情况所有函数都是修改函数,要想成为访问函数需要在参数类型列表尾的圆括号后边加上关键字const,加上以后在定义和声明是必须都有,要不会出错。原创 2011-08-19 14:49:31 · 1639 阅读 · 0 评论 -
c++中必须用初始化列表初始化的情况
1.数据成员的类型有复杂的初始化过程。2.数据成员是const类型(被构造后就不能再被改变)。3.数据成员是不带零参数的构造函数的类型。原创 2011-08-19 14:43:08 · 600 阅读 · 1 评论 -
关于C语言中函数调用和参数传递机制的探讨(zz)
关于C语言中函数调用和参数传递机制的探讨 函数,相信许多人也知道其重要性;一个文件往往由一个或者多个函数构成的。然而可能许多人还不知道函数调用的一些深层问题,所以我写的这篇文章一来是应了一个好朋友的要求而写,二来希望一些朋友能够从我这篇文章了解函数调用的机制。但原创 2011-04-26 19:46:00 · 1157 阅读 · 0 评论 -
50个c/c++源代码网站
C/C++是最主要的编程语言。这里列出了50名优秀网站和网页清单,这些网站提供c/c++源代码。这份清单提供了源代码的链接以及它们的小说明。我已尽力包括最佳的C/C++源代码的网站。这不是一个完整的清单,您有建议可以联系我,我将欢迎您的建议,以进一步加强这方面的清单。1、ht转载 2011-09-13 09:06:40 · 822 阅读 · 1 评论 -
memcpy函数的实现要点
void *memcpy(void*dest,const void*src,size_tcount)//1.源串要有const修饰,这里参数都是void *{ char *pDest=(char*)(dest);//2.将原始指针赋给新变量,char *原创 2011-09-10 11:19:35 · 1282 阅读 · 3 评论 -
itoa函数的实现要点
#include #include #include char* _itoa(int value, char* string, int radix){char tmp[33];char* tp = tmp;int i;unsigned v;in原创 2011-09-11 11:35:34 · 749 阅读 · 0 评论 -
atol(atoi)函数的实现要点
以下是c标准库中该函数的实现代码,从中分析要点/*** *atox.c - atoi and atol conversion * * Copyright (c) 1989-1997, Microsoft Corporation. All rights reserved.原创 2011-09-11 10:57:27 · 2247 阅读 · 2 评论 -
c#和c/c++编译生成的exe文件的区别
c#编译生成的 exe文件,是一个由中间语言(IL)、元数据(Metadata)和一个额外的被编译器添加的目标平台的标准可执行文件头(比如Win32平台就是加了一个标准Win32可执行文件头)组成的PE(portable executable,可移植执行体)文件,需要由CLR执行。c、c++编译生成的exe文件是传统的二进制可执行文件,可以由硬件直接执行。虽然他们有着相同的扩展名,但是却有很大的差原创 2012-10-29 15:11:33 · 3066 阅读 · 0 评论