const 用法详解

const用法详解 面向对象是C++的重要特性.  但是c++在c的基础上新增加的几点优化也是很耀眼的 就const直接可以取代c中的#define 以下几点很重要,学不好后果也也很严重 const 1. 限定符声明变量只能被读    const int i=5;    i...

2016-03-31 15:29:49

阅读数 550

评论数 0

软件设计和优化的基本原则

参考系列博客       1. 改善代码设计 —— 优化函数的构成(Composing Methods)       2. 改善代码设计 —— 优化物件之间的特性(Moving Features Between Objects)       3. 改善代码设计 —— 组织好你的数...

2016-03-31 15:28:59

阅读数 559

评论数 0

Darwin streaming server源码安装方式总结

darwin streaming server 源码编译 从苹果的网站http://developer.apple.com/opensource/server/streaming/index.html 下载 DarwinStreamingSrvr5.5.5-Source.tar.gz ...

2016-03-31 15:27:18

阅读数 518

评论数 0

Shell for循环用法总结

关于shell中的for循环用法很多,一直想总结一下,今天网上看到上一篇关于for循环用法的总结,感觉很全面,所以就转过来研究研究,嘿嘿... 1、 for((i=1;i 2、在shell中常用的是 for i in $(seq 10) 3、for i in `ls` 4、for ...

2016-03-31 15:26:14

阅读数 471

评论数 0

epoll使用详解(精髓)总结

epoll - I/O event notification facility 在linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。 相比于select,epoll最大的好处在于它不会随着监听fd数目的增长而降...

2016-03-31 15:25:23

阅读数 303

评论数 0

C、C++等语言常见符号作用总结

+、-、*、/∶ C语言的运算符——加、减、乘、除。  +=、-=、*=、/=、%=∶ C语言的运算符——修改和替代。  .∶ C语言的运算符——结构或联合的成员选择。  ,∶C语言中①逗号运算符。②分隔符,用于分隔函数参数表中的各参数。  ~∶ C语言的运算符——二进码反...

2016-03-16 13:35:33

阅读数 1845

评论数 0

内存泄漏测试命令及程序

/* 文件名称为test_list.cpp 测试std::list内存是否泄漏的问题 g++ -o test_list test_list.cpp -lpthread 查看进程占用的方法为: pidof  test_list linux系统假设输出进程号:9875 cat /pr...

2016-03-16 13:30:08

阅读数 2144

评论数 0

日志搜集、过滤及推送处理框架logstash及fluentd总结

简介 Logstash是一个接收,处理,转发日志的工具。支持系统日志,webserver日志,错误日志,应用日志,总之包括所有可以抛出来的日志类型。怎么样听起来挺厉害的吧? 在一个典型的使用场景下(ELK):用Elasticsearch作为后台数据的存储,kibana用来前端的报表展示。Log...

2016-03-16 11:06:11

阅读数 10636

评论数 0

webrtc开源项目总结

什么是WebRTC? 众所周知,浏览器本身不支持相互之间直接建立信道进行通信,都是通过服务器进行中转。比如现在有两个客户端,甲和乙,他们俩想要通信,首先需要甲和服务器、乙和服务器之间建立信道。甲给乙发送消息时,甲先将消息发送到服务器上,服务器对甲的消息进行中转,发送到乙处,反过来也是一样。这...

2016-03-15 11:46:34

阅读数 1794

评论数 0

Linux 下编译及调试 C 代码的简易指南

对于Linux下的C程序员来说,几乎天天都会和Linux打交道。但在很多人的眼中,Linux是一个易用性极差、靠命令驱动的操作系统,根本无法与有着友好用户界面的Windows相比。确实是这样的,即使大家的程序是运行在Linux下,基于以下种种原因,我们的大部分工作还是在Windows下完成的: ...

2016-03-07 23:56:11

阅读数 435

评论数 0

Linux 动态库相关知识整理

动态库和静态库在C/C++开发中很常见,相比静态库直接被编译到可执行程序,动态库运行时加载使得可执行程序的体积更小,更新动态库可以不用重新编译可执行程序等诸多好处。作者是一个Linux后台开发,这些知识经常用到,所以整理了一下这方面的知识。静态库相对简单,本文只关心Linux平台下的动态库。 ...

2016-03-07 23:54:52

阅读数 539

评论数 0

C 语言调试器是如何工作的?

当你用 GDB 的时候,可以看到它完全控制了应用程序进程。当你在程序运行的时候用 Ctrl + C,程序的运行就能够终止,而GDB能展示它的当前地址、堆栈跟踪信息之类的内容。 但是它是怎么办到的呢? 但是它们怎么不工作呢? 开始,让我们先研究它怎样才会不工作。它不能通过阅读和分析...

2016-03-07 23:53:49

阅读数 355

评论数 0

为什么我要垂直对齐代码(你也要如此!)

上周在 HackerNews,关于 Linux Kernel 代码风格展开了有趣的讨论。 在讨论中,我就应不应该垂直对齐代码发起了一场小小的圣战。我完全支持!让我细说端详。 什么是垂直对齐? 举个小例子: 1 2 3 4 ...

2016-03-07 23:52:45

阅读数 361

评论数 0

C/C++内存泄漏及检测

“该死系统存在内存泄漏问题”,项目中由于各方面因素,总是有人抱怨存在内存泄漏,系统长时间运行之后,可用内存越来越少,甚至导致了某些服务失败。内存泄漏是最难发现的常见错误之一,因为除非用完内存或调用malloc失败,否则都不会导致任何问题。实际上,使用C/C++这类没有垃圾回收机制的语言时,你很多时...

2016-03-07 23:51:43

阅读数 285

评论数 0

如何写出优美的 C 代码

面向对象的语言更接近人的思维方式,而且在很大程度上降低了代码的复杂性,同时提高了代码的可读性和可维护性,传统的 C 代码同样可以设计出比较易读,易维护,复杂度较低的优美代码,本文将通过一个实际的例子来说明这一点。 基础知识 结构体 除了提供基本数据类型外,C 语言还提供给用户自己...

2016-03-07 23:50:19

阅读数 355

评论数 0

分布式高可用 id 服务器设计实现

服务端/后台开发中如何生成id是每个开发者都会遇到的问题,在电商、游戏领域尤其突出。如何保证生成id的唯一性、可靠性、高可用性,如何组织id的格式,在不同的应用场景和限制下实现方式也不尽相同。 我们的应用场景类似电商,在一个订单的生命周期内,有多个逻辑需要生成各自的id,还要考虑到可读性和灵...

2016-03-07 23:49:15

阅读数 447

评论数 0

手把手教你做一个 C 语言编译器(9):总结

恭喜你完成了自己的 C 语言编译器,本章中我们发一发牢骚,说一说编写编译器值得注意的一些问题;编写编译器时遇到的一些难题。 本系列: 手把手教你做一个 C 语言编译器(0):前言手把手教你做一个 C 语言编译器(1):设计手把手教你做一个 C 语言编译器(2):虚拟机手把手教你做一个 ...

2016-03-07 23:48:38

阅读数 4243

评论数 0

第一个 C 语言编译器是怎样编写的?

首先向C语言之父Dennis Ritchie致敬! 当今几乎所有的实用的编译器/解释器(以下统称编译器)都是用C语言编写的,有一些语言比如Clojure,Jython等是基于JVM或者说是用Java实现的,IronPython等是基于.NET实现的,但是Java和C#等本身也要依靠C/C++...

2016-03-07 23:47:51

阅读数 772

评论数 1

如何成为一名优秀的 C 语言程序员

问题的提出 每过一段时间我总会收到一些程序员发来的电子邮件,他们会问我是用什么编程语言来编写自己的游戏的,以及我是如何学习这种编程语言的。因此,我认为在这篇博文里列出一些有关C语言的最佳读物应该能帮到不少人。如果你知道其它的优秀读物,请给我发邮件或者直接在评论栏中告诉我吧。 问题的解答...

2016-03-07 23:45:40

阅读数 667

评论数 0

用 C 语言编写一个简单的垃圾回收器

人们似乎认为编写垃圾回收机制是很难的,是一种只有少数智者和Hans Boehm(et al)才能理解的高深魔法。我认为编写垃圾回收最难的地方就是内存分配,这和阅读K&R所写的malloc样例难度是相当的。 在开始之前有一些重要的事情需要说明一下:第一,我们所写的代码是基于Linux ...

2016-03-07 23:40:31

阅读数 936

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭