C/C++
songgl
这个作者很懒,什么都没留下…
展开
-
打造最快的Hash表
最近在网上看到篇文章,一起拜一拜暴雪先提一个简单的问题,如果有一个庞大的字符串数组,然后给你一个单独的字符串,让你从这个数组中查找是否有这个字符串并找到它,你会怎么做?有一个方法最简单,老老实实从头查到尾,一个一个比较,直到找到为止,我想只要学过程序设计的人都能把这样一个程序作出来,但要是有程序员把这样的程序交给用户,我只能用无语来评价,或许它真的能工作,但...也只能如此了。最合适的算法自然是使转载 2007-10-11 11:29:00 · 839 阅读 · 1 评论 -
auto/static/register/const/volatile/extern
(1)auto 这个这个关键字用于声明变量的生存期为自动,即将不在任何类、结构、枚举、联合和函数中定义的变量视为全局变量,而在函数中定义的变量视为局部变量。这个关键字不怎么多写,因为所有的变量默认就是auto的。 (2)register 这个关键字命令编译器尽可能的将变量存在CPU内部寄存器中而不是通过内存寻址访问以提高效率。 (3)static 常见的两种用途转载 2007-10-11 11:37:00 · 496 阅读 · 0 评论 -
堆和栈的区别
一、预备知识?程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)? 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) ? 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。3、全局区(静态区)(static)?,全局变量转载 2007-10-10 09:16:00 · 766 阅读 · 1 评论 -
Socket通信
/******* 服务器程序 (server.c) ************/ #include #include #include #include #include #include #include #include intmain (int argc, char *argv[]) { int sockfd, new_fd; struct sockaddr_in server_原创 2007-10-11 14:18:00 · 476 阅读 · 0 评论 -
论述带参数的宏与函数的区别
1函数调用时,先进性实参表达式的值,然后带入形参,而使用宏只是进行简单的字符替换.2函数调用是在程序运行时处理的 ,分配临时的内存单元;而宏展开则是在编译时进行的,在展开时并不分配内存单元,不进行值得传递处理,也没有 "返回值"的概念.3对函数中的实参与形参都要定义类型,二者的类型要求一致,如不一致,应进行类型转换;而宏不存在类型问题,宏名无类型,它的参数也无类型,只是一个符号代表,展开时转载 2007-10-10 09:51:00 · 2279 阅读 · 0 评论 -
解释局部变量、全局变量和静态变量的含义
<img style="CURSOR: hand" onclick="function onclick(){changeStyle(0);}" src="http://blog.hexun.com/img/xiao.gif" alt="字体变小" /> <img style="CURSOR: hand" onclick="function onclick(){changeSty原创 2007-10-10 09:56:00 · 7581 阅读 · 0 评论 -
Strcpy和Strncpy的区别
第一种情况: char* p="how are you ?"; char name[20]="ABCDEFGHIJKLMNOPQRS"; strcpy(name,p); //name改变为"how are you ? OPQRS " ====>错误! strncpy(name,p,sizeof(name)) //name改变为"how are you ? " ====>正确! 第二种情况: cha原创 2007-10-10 14:23:00 · 625 阅读 · 0 评论