C/C++学习
balderfan
这个作者很懒,什么都没留下…
展开
-
va_list 详解
VA_LIST 是在C语言中解决变参问题的一组宏他有这么几个成员:1) va_list型变量:#ifdef _M_ALPHAtypedef struct { char *a0; /* pointer to first homed integer argument */ int offset; /* byte offset of next param转载 2012-04-17 15:12:24 · 837 阅读 · 0 评论 -
c/c++标准预定义宏 .
一、标准预定义宏 The standard predefined macros are specified by the relevant language standards, so they are available with all compilers that implement those standards. Older compilers may not provide all转载 2012-04-17 15:17:22 · 654 阅读 · 0 评论 -
C中的预编译宏定义
在将一个C源程序转换为可执行程序的过程中, 编译预处理是最初的步骤. 这一步骤是由预处理器(preprocessor)来完成的. 在源流程序被编译器处理之前, 预处理器首先对源程序中的"宏(macro)"进行处理.C初学者可能对预处理器没什么概念, 这是情有可原的: 一般的C编译器都将预处理, 汇编, 编译, 连接过程集成到一起了. 编译预处理往往在后台运行. 在有的C编译器中, 这些转载 2012-04-17 18:42:54 · 662 阅读 · 0 评论 -
哈希表学习资料
数据结构:数据间关系 + 数据存储方式。常见的数据结构有链表,堆,栈,队列,表,树,图等。选择何种数据结构,取决于需要解决什么样的问题。 哈希表(hash table),即散列表,是根据关键码值(Key value)而直接进行访问的数据结构。其核心思想是选择一个哈希函数或者随机函数,用一个和记录相关的值作为函数的参数,生成存放该记录的块地址。这个算法的优点是寻址的时间复杂度是o(1),缺点转载 2012-04-23 18:57:00 · 664 阅读 · 0 评论 -
Linux 下面使用 mtrace 来检查一般的程序的内存溢出
对于内存溢出之类的麻烦可能大家在编写指针比较多的复杂的程序的时候就会遇到。Debug起来也是比较累人。其实linux系统下有一个使用的工具可以帮忙来调试的,这就是mtrace。Mtrace主要能够检测一些内存分配和泄漏的失败等。下面我们来学习一下它的用法。 使用mtrace来调试程序有4个基本的步骤,需要用到GNU C 函数库里面的一些辅助的函数功能。 1. 在需要跟踪的程序中需要转载 2012-06-06 14:57:53 · 1276 阅读 · 0 评论 -
libcurl 多线程使用注意事项
(1), 超时(timeout)libcurl 是 一个很不错的库,支持http,ftp等很多的协议。使用库最大的心得就是,不仔细看文档,仅仅看着例子就写程序,是一件危险的事情。我的程序崩溃了,我 怀疑是自己代码写的问题,后来发现是库没用对。不仔细看文档(有时候文档本身也比较差劲,这时除了看仔细外,还要多动脑子,考虑它是怎么实现的),后果很 严重。不加思索的使用别人的库或者代码,有时候很惬意,转载 2012-05-24 18:48:45 · 12971 阅读 · 2 评论 -
LibCurl编程
2 LibCurl编程2.1 LibCurl编程流程在基于LibCurl的程序里,主要采用callback function (回调函数)的形式完成传输任务,用户在启动传输前设置好各类参数和回调函数,当满足条件时libcurl将调用用户的回调函数实现特定功能。下面是利用libcurl完成传输任务的流程:1. 调用curl_global_init()初始化li转载 2012-05-24 18:55:19 · 1322 阅读 · 0 评论 -
python和c++互调
1. C/C++调python 一.关于python库,http://www.python.org/可以从这里下载,编译得到release和debug库。 二.被调python文件不含有住函数,不能有变量,内存需C/C++来分配。 test.pydef print_list(list): print dictdef show(): print "hell转载 2012-09-13 13:40:18 · 2067 阅读 · 0 评论 -
Windows和linux下编译boost程序库
一 .Windows下编译boost程序库Boost库是一个功能强大、构造精巧、跨平台、开源并且完全免费的C++程序库要使用Boost库,首先确认一下你使用的开发环境是否支持编译boost库(http://www.boost.org/users/history/version_1_46_1.html)以windows的msvc编译器为例,支持编译boost库是Visual C++:转载 2012-09-13 16:59:34 · 1294 阅读 · 0 评论