C/C++
文章平均质量分 74
zhcosin
这个作者很懒,什么都没留下…
展开
-
C语言内存管理(初级)----链表
上一篇文章里实现了二维动态数组的创建和销毁,现在来看一个稍加复杂一点的实例:链表,读者需具有链表的基本知识,本文的链表实现与读者所熟知的实现有一些差异。 假定我们要写一个计算器程序,它接受一个字符串形式的表达式,然后计算并输出其结果,我们先要解决的是它的词法分析部分,这是一个把输入的字符串分割成若干基本的表达式元素的过程,这些表达式元素包含运算符、运算数、括号,各自具有不同的属性,比如运原创 2012-12-15 22:21:02 · 2434 阅读 · 1 评论 -
C语言字符串分割函数
自己写了一个字符串分割函数,可以根据提供的分隔符串列表将指定的字符串分割为若干个字符串,分隔符可以是单个字符也可以是字符串,可以设定是否压缩分隔符串(即当两个或者两个以上分隔符串连续出现时不生成空串),也可以设定是否把查找到的分隔符串也插入到结果中。需要注意的是结果是动态分配的内存,使用完毕后需要自己释放。#include #include #include /** * Split原创 2013-01-23 16:40:40 · 1345 阅读 · 0 评论 -
计算器 abacus 2 发布
计算器 abacus 2 今日发布了. 下载网址 http://www.oschina.net/code/snippet_736932_13725, 技术文档网址:http://my.oschina.net/zhcosin/blog?catalog=254400 abacus 是一个简易的、可扩展的、开源的小型计算器,支持四则混合运算和众多的数学函数,如三角函数和组合数等,支持符原创 2013-01-09 16:10:18 · 1433 阅读 · 0 评论 -
函数 bind 原理初探(一)
对函数绑定的原理进行了简单实现。原创 2014-03-05 16:09:48 · 2179 阅读 · 0 评论 -
C语言内存管理(初级)----动态数组
C 语言提供的指针使我们可以直接操纵内存,在带来巨大灵活性的同时也带来了巨大的安全隐患。随着程序规模的增大,管理内存的难度也大为增加,内存管理应该说是一项艰巨任务。 C 语言引起的内存问题都是没有正确使用和维护内存造成的,比如 C 语言初学者可能会写出下面的代码: char *p;strcpy(p, "hello world!");这样的程序会直接崩溃掉,因为字符指针 p原创 2012-12-09 20:07:31 · 2446 阅读 · 0 评论 -
实现一个微型的日志库
序言对一个服务端程序来说,日志是用于发现系统问题,诊断系统运行情况的一个重要工具,所以日志库的设计要以帮助跟踪程序运行状态为宗旨,这篇文章来源于最近我在一个通信协议库中所写的一个微型的日志组件,总共也就两百来行代码,实现了日志的搜集、过滤、输出功能。日志库的功能一个日志库,应该把来自于程序各个部分的日志信息搜集起来,按照一定的过滤规则(通常是按日志级别过滤),将通过过滤的日志信息输出到指定的目标地点原创 2015-09-07 22:31:04 · 1430 阅读 · 0 评论 -
利用模板偏特化实现编译期断言
利用模板偏特化实现编译期断言断言在C/C++语言中的作用有目共睹,但它只能在运行期起作用,有时可能会希望在编译期检查某个条件,不成立就产生一条编译错误信息,比如你写了一个模板,但是希望模板的参数只能是整数类型,用其它类型对模板进行实例化时干脆让它通不过编译,怎么样,听起来是不是很酷?利用模板的偏特化,轻轻松松就能实作出来,请看:template<bool>compile_assert;templa原创 2015-09-02 22:45:25 · 1005 阅读 · 0 评论