上一页 1 ··· 3 4 5 6 7 8 下一页
摘要: strcat函数:原型:extern char *strcat(char *strDest, char *strSrc);功能:把strSrc所指字符串添加到strDest结尾处(覆盖strDest结尾处的'\0')并添加'\0';说明:strSrc和strDest所指内存区域不可以重叠且strDest必须有足够的空间来容纳strSrc的字符串。返回指向strDest的指针。 1 char *strcat(char *strDest, const char *strSrc) 2 { 3 char *address = strDest; 4 assert((str 阅读全文
posted @ 2012-01-14 20:31 刺客XIII 阅读(4327) 评论(1) 推荐(0) 编辑
摘要: strlen 标准函数: 1 int strlen(const char *str) 2 { 3 assert(str != NULL); 4 int len; 5 while ((*str++) != '\0') 6 { 7 len++; 8 } 9 return len;10 } 1 int strlen(const char *str) 2 { 3 assert(str != NULL); 4 char *tmp= str; 5 while (*tmp++) 6 { 7 ; 8 } 9 return (tmp - str -... 阅读全文
posted @ 2012-01-14 16:49 刺客XIII 阅读(1008) 评论(0) 推荐(0) 编辑
摘要: strcpy中的循环语句:while ((*strDest++ = *strSrc++) != '\0')这个循环会一直执行,直到循环条件为空,即'\0',也就是说,如果strDest所指的存储空间不够大的话,这个函数会将strSrc中的部分内容拷贝到strDest所指内存空间后面的内存中。而strDest所指空间后面的内存却是不可知的,有可能已经被其他资源占用了,这样就会破坏原先存储的内容,导致系统崩溃。因为strcpy在执行字符串拷贝的时候,会从strSrc所指位置开始,检测当前内存单元中存储的数据是否为'\0'。如果不为'\0 阅读全文
posted @ 2012-01-14 15:41 刺客XIII 阅读(5255) 评论(2) 推荐(3) 编辑
摘要: 1、 声明外部变量 现代编译器一般采用按文件编译的方式,因此在编译时,各个文件中定义的全局变量是互相透明的,也就是说,在编译时,全局变量的可见域限制在文件内部。下面举一个简单的例子。创建一个工程,里面含有A.cpp和B.cpp两个简单的C++源文件:1 //A.cpp2 int i;3 void main()4 {5 6 7 }1 //B.cpp2 3 int i; 这两个文件极为简单,在A.cpp中我们定义了一个全局变量i,在B中我们也定义了一个全局变量i。我们对A和B分别编译,都可以正常通过编译,但是进行链接的时候,却出现了错误,错误提示如下:Linking...B.obj : erro. 阅读全文
posted @ 2012-01-14 05:12 刺客XIII 阅读(307) 评论(2) 推荐(0) 编辑
摘要: 1 char* strcpy(char* strDest,const char* strSrc) 2 { 3 if((strDest == NULL) || (strSrc == NULL)) //[1] 4 throw "Invalid Arguments"; //[2] 5 6 //assert((strDest!=NULL) && (strSrc !=NULL)); 7 char* strDestCopy = strDest; //[3] 8 while((*strDest++ = *strSrc++) != '\0')//[4] 9 阅读全文
posted @ 2012-01-14 04:50 刺客XIII 阅读(486) 评论(0) 推荐(1) 编辑
摘要: strcpy原型声明:extern char *strcpy(char *dest, char *src)头文件;string.h功能:把src所指由NULL结束的字符串复制到dest所指的数组中。说明:src和所指内存区域不可以重叠且必须有足够的空间来容纳src的字符串,返回指向dest的指针。不使用库函数实现strcpy函数(工业级) 1 char *strcpy(char *strDest, const char *strSrc) 2 { 3 assert((strDest != NULL)&&(strSrc !=NULL)); 4 char *tmp = strDest 阅读全文
posted @ 2012-01-14 03:37 刺客XIII 阅读(5519) 评论(1) 推荐(1) 编辑
摘要: 马上就要毕业了,回头看大学时光过得很快,但在我的内心却没有留下遗憾,现在想起大一刚入学那会儿挺好笑的,有点愣头青的感觉。现在成熟多了。如果按现在的标准来看,大一大二浪费了一部分时间,我所学专业是物理教育。但其实我并不喜欢我的专业。在我们家周围有好几个教师,我只能说生活的很安宁。我大学时试图换专业,但没有成功。院长给的答复是已经报上去了。我知道这下肯定要在物理系待四年了,我喜欢计算机,有发自内心的一种热爱。大一时幻想将来能成为米特尼克一样的传奇人物。钻研黑客知识。现在看来那时很浮躁,很幼稚,计算机技术的学习必须脚踏实地。大二准备考四级网络工程师,当时看感觉很难,现在复习时很小儿科。结果通过了.. 阅读全文
posted @ 2012-01-13 18:53 刺客XIII 阅读(289) 评论(2) 推荐(0) 编辑
摘要: centos 无线网卡编译链接http://wiki.centos.org/HowTos/Laptops/Wireless#head-320d6fcf09b7e16e0b15d19ef76adcb023a95938 阅读全文
posted @ 2011-11-09 20:50 刺客XIII 阅读(211) 评论(0) 推荐(0) 编辑
摘要: vim 配置超全这是链接http://blog.tianya.cn/blogger/post_read.asp?BlogID=2444245&PostID=35656548 阅读全文
posted @ 2011-11-09 20:48 刺客XIII 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 1 引言 线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者。传统的Unix也支持线程的概念,但是在一个进程(process)中只允许有一个线程,这样多线程就意味着多进程。现在,多线程技术已经被许多操作系统所支持,包括Windows/NT,当然,也包括Linux。 为什么有了进程的概念后,还要再引入线程呢?使用多线程到底有哪些好处?什么的系统应该选用多线程?我们首先必须回答这些问题。 使用多线程的理由之一是和进程相比,它是一种非常"节俭"的多任务操作方式。我们知道,在Linux系统下,启动一个新的进 阅读全文
posted @ 2011-10-10 13:49 刺客XIII 阅读(176) 评论(0) 推荐(0) 编辑
上一页 1 ··· 3 4 5 6 7 8 下一页