
C/C++学习点滴
文章平均质量分 69
yihucha166
这个作者很懒,什么都没留下…
展开
-
栈和堆的区别
一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。3、全局区(静态区)(static)—,全局变量转载 2006-12-28 18:44:00 · 714 阅读 · 0 评论 -
list sort方法调研
stl中的list 是双向链表结构,最近用到其中的sort方法,文档中有这么两段:Sorts *this according tooperator. The sort is stable, that is, the relative order of equivalent elements is preserved. All iterators remain valid and con原创 2011-06-14 15:57:00 · 2334 阅读 · 0 评论 -
Linux下socket实现网页抓取
主要用来和WinSock进行下比较:--WinSock--需要初始化:if( (Ret = WSAStartup(MAKEWORD(1,1), &wsaData) ) != 0 ){ printf("WSAStartup failed with error %d/n", Ret); return FALSE;}头文件:--WinSock--#inclu原创 2007-10-06 21:33:00 · 2690 阅读 · 0 评论 -
通过函数指针调用对象内部方法
知道这个就可以实现 c++中的closure(http://www.cppblog.com/sleepwom/archive/2011/04/06/143489.html) #include using namespace std;class MyClass { public: void PrintName() {原创 2011-06-09 11:34:00 · 877 阅读 · 0 评论 -
链接装载与库《程序员的自我修养》 之 全局符号冲突问题
<br /><br />链接装载与库《程序员的自我修养》之全局符号冲突问题<br /> 1.由强符号和弱符号引起的全局符号冲突<br />强符号:编译器默认函数和初始化了的全局变量<br />弱符号:未初始化的全局变量为弱符号(也可以通过gcc的__attribute__((weak))指定)<br /> <br />冲突的例子:如果我们在目标文件A和目标文件B都定义了一个全局整形变量g_variable,并将它们都初始化,这样在链接时链接器就会报multiple definition的错误,这种错误就是原创 2010-11-28 17:35:00 · 1349 阅读 · 0 评论 -
mutable 关键字
<br />mutable 可以用来指出,即使结构或者类变量为const,其某个成员也可以被修改 <br /> 在c++的类中, 如果一个函数被const 修饰,那么它将无法修改其成员变量的,但是如果这个成员变量是被mutable修饰的话,则可以修改。 <br />例如 <br />struct data { char name[30]; mutable int accesses; .... }; const data veep = {"david";,0,转载 2010-09-11 12:13:00 · 620 阅读 · 0 评论 -
讲讲volatile的作用
转载,原文地址是:http://blog.21ic.com/user1/2949/archives/2007/35599.html<br /><br />一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。下面是volatile变量的几个例子: <br /> 1). 并行设备的硬件寄存器(如:状态寄存器) <br /> 2转载 2010-09-11 12:05:00 · 454 阅读 · 0 评论 -
用GDB调试程序
转:http://blog.youkuaiyun.com/haoel/archive/2003/07/02/2879.aspx作者:陈皓ID:haoel用GDB调试程序GDB概述————GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BC转载 2009-04-14 18:36:00 · 3328 阅读 · 0 评论 -
用WinSock实现HTTP的GET
以前用WinInet的类写过网络爬虫,所以也想自己试着直接用socket来写一个类似程序,看了很多的例程以及文章,自己用WinSock写了一个http下get功能的程序,比较精简,基本体现了这类程序的框架,发现重点还是要了解好http协议的头部,准备进一步学习RFC文档,网上对于http协议的介绍都貌似比较简略。--2007--10--6--by wangben--hit--程序是vc下的一个原创 2007-10-06 15:53:00 · 4758 阅读 · 1 评论 -
C 程序的外部变量与函数
C程序由一组对象组成,这些对象包括程序中所使用的变量和实现特定功能的函数。变量可以分为函数内部定义、使用的变量和函数外部定义的变量,通常情况下,把函数内部定义、使用的变量称为内部变量或局部变量,而将在函数外部定义的、供许多函数所使用的变量称为外部变量,一般情况下,也可以称为全局变量。 由于C语言不允许在一个函数中定义其他函数,因此函数本身是外部的。一般情况下,也可以说函数是全局函数。在缺省情况下转载 2007-02-27 18:39:00 · 1079 阅读 · 0 评论 -
C++的static关键字
C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static。前者应用于普通变量和函数,不涉及类;后者主要说明static在类中的作用。一、面向过程设计中的static1、静态全局变量在全局变量前,加上关键字static,该变量就被定义成为一个静态全局变量。我们先举一个静态全局变量的例子,如下: //Example 1#include转载 2007-02-27 18:41:00 · 994 阅读 · 0 评论 -
C++文件操作
在C++中,有一个stream这个类,所有的I/O都以这个“流”类为基础的,包括我们要认识的文件I/O,stream这个类有两个重要的运算符: 1、插入器(向流输出数据。比如说系统有一个默认的标准输出流(cout),一般情况下就是指的显示器,所以,cout2、析取器(>>) 从流中输入数据。比如说系统有一个默认的标准输入流(cin),一般情况下就是指的键盘,所以,cin>>x;就表示从标准输入流中转载 2007-02-27 18:32:00 · 1109 阅读 · 0 评论 -
char* a = "zhf"; 和 char a[] = "zhf"; 之间的区别
char* a = "zhf"; 定义一个 指针 a,指向一个 常量字符串 "zhf" 的首地址,由于 "zhf" 是一个常量字符串, 在常量区,无法修改,所以 a[1] = k 出错,它意图修改常量;但是 a 这个指针本身是可以修改的。char a[] = "zhf"; 定义一个 char 数组,该数组的内容是 "zhf", 这里有一个赋值,"zhf" 被赋值给了这个数组, 数组中的值原创 2007-02-14 11:15:00 · 2690 阅读 · 0 评论 -
Protocal Buffer 2.3.0使用注意事项
备忘 1. string默认不支持gbk,用bytes类型代替,传递二进制 2. 非string类型的序列化,反序列化: bool SerializeToArray(void * buf, int & len)//len长度字段 需要传入可用buf大小,若太小 会失败 { bool bret = pb_obj.SerializeToArray(buf,原创 2011-11-22 16:38:30 · 1685 阅读 · 0 评论