C/C++/VC++
文章平均质量分 60
ShiningStarPxx
这个作者很懒,什么都没留下…
展开
-
C语言编译过程
编译,编译程序读取源程序(字符流),对之进行词法和语法的分析,将高级语言指令转换为功能等效的汇编代码,再由汇编程序转换为机器语言,并且按照操作系统对可执行文件格式的要求链接生成可执行程序。 C源程序头文件-->预编译处理(cpp)-->编译程序本身-->优化程序-->汇编程序-->链接程序-->可执行文件1.编译预处理读取c源程序,对其中的伪指令(以#开头的指令)和特殊符号进行处理[析] 伪转载 2008-05-07 20:52:00 · 812 阅读 · 0 评论 -
google test 中的小陷阱
昨天晚上在做单元测试时,有两个例子始终过不去。但是令我惊讶的是,分别测试时,竟然可以通过。程序的本质上来说就是对一个字符串的按位读取。那么为什么,这个程序会出现这样的异常情况呢?我的初步怀疑是gtest是多线程的,而我在对字符串操作的时候不是线程安全的,导致当前在字符串的索引与我的预期出现了偏差。今天晚点时候写个简单的例子来验证一下。原创 2013-05-15 09:35:01 · 721 阅读 · 0 评论 -
linux 服务器时间函数
linux下,至少有两种当前时间的获取函数,1. time(NULL)2. gettimeofday(NULL, NULL) 这两个函数都是在用户态完成的,效率上来说,time更高;精度上来说gettimeofday()更好。根据需要自己选择吧,测试函数如下,#include #include #include #include #inc原创 2013-06-09 16:15:53 · 995 阅读 · 0 评论 -
nginx 初探一
首先参考一下emiller的模块开发介绍这篇http://www.evanmiller.org/nginx-modules-guide.htmlNginx模块有三个主要的角色Handler, 处理请求,并产生结果Filter, 过滤结果Load-balancer 负载均衡Note: Unlike modules in Apache原创 2013-06-10 12:01:08 · 975 阅读 · 0 评论 -
vim.c 使用
This article is part of the ongoing Vi / Vim Tips and Tricks Series. As a programmer, you may do lot of repetitive tasks while coding such as:Adding file headerAdding function/frame commentInclu转载 2013-06-01 17:11:04 · 732 阅读 · 0 评论 -
nginx的定时器源码分析
编写服务器常常会需要实现定时器功能。windows下有微软封得好好的控件,拖之即用,Linux下面就算了,还是自己动手吧。虽说Linux提供了基于信号的定时功能(alarm,settimer),但是,考虑到信号是如此的粗暴,还是算了,在写高性能服务器的时候,还是别用了。免得被虐。既然放弃了系统的定时功能,那么只能在用户空间自己实现了,思路也很简单。维护一个时间和一堆定时器事件,每次转载 2013-06-06 21:11:53 · 870 阅读 · 0 评论 -
C/C++中的日期和时间 TIME_T与STRUCT TM转换
转载自http://www.cnblogs.com/Wiseman/archive/2005/10/24/260576.html摘要:本文从介绍基础概念入手,探讨了在C/C++中对日期和时间操作所用到的数据结构和函数,并对计时、时间的获取、时间的计算和显示格式等方面进行了阐述。本文还通过大量的实例向你展示了time.h头文件中声明的各种函数和数据结构的详细使用方法。关键字:转载 2013-06-19 21:00:56 · 723 阅读 · 0 评论 -
nginx 研究2
今天看了一下main的初步源码,第一行,就让我学到了一些东西int ngx_cdeclmain(int argc, char *const *argv)什么是ngx_cdecl找到#define ngx_cdecl是个空定义,那么究竟是来干嘛的查了一下,发现是跨平台时的一种约定。http://en.wikipedia.or原创 2013-06-19 16:53:56 · 867 阅读 · 0 评论 -
skynet-源码分析1:目录下的文件整理
skynet是c和lua结合的一个开源游戏引擎,是云风所写,对我等屌丝来说,是很好的参考先整理一下文件结构,然后再慢慢深入主目录下有10个目录,105个文件,具体包含的情况,我简单画了个图,明天深入skynet-src来看看原创 2013-07-01 12:27:37 · 2271 阅读 · 0 评论 -
数据类型 -- uint32_t 类型(ZZ)
1>. 在写程序时注意"无符号类型"的使用, 各种类型边界值的情况. 如: a> 当某个数据不可能为负数时我们一定要考虑用以下类型: unsigned char, unsigned int, uint32_t, size_t, uint64_t, unsigned long int, b> 当有些数据你不知道是正负时一定不要用"a>"中的类型, 不然转载 2013-05-13 23:29:20 · 1613 阅读 · 0 评论 -
线程安全
之前的一篇中提到了,在访问同一个i对象时,可能会有访问结果跟预期不一致的问题。今天正好看到了一些线程对内存访问加锁的函数,于是上网搜集了一下,做了个整理。参考资料:http://www.cnblogs.com/FrankTan/archive/2010/12/11/1903377.htmlhttp://blog.itmem.com/?p=1286http://pic.dhe.ibm.com/inf原创 2013-05-18 12:33:27 · 694 阅读 · 0 评论 -
protobuf 使用中发现的一个问题
首先先说一下版本protoc --version2.5.0然后说一下bug是什么,就是在把一个对象序列化成一个ostringstream后,如果再把另一个对象序列化到同一个ostringstream后,会发现第二个对象变成了两个对象。即使ostringstream.clear() 后一样会有问题先上协议文件, 标准的examplepackage lm;原创 2013-05-16 18:08:56 · 1032 阅读 · 0 评论 -
关于数字类型转化为整型的方法
在写MFC时,遇到一个小问题,显示数字0,直接用显式转化,结果显示是一些ASC码,很显然mfc显式转化时,将其转化为ASC码。于是上网搜了搜这方面的资料,结果还发现不少,感谢CSDC的论坛。把各种方法摘出来,作为技术备份,方便用的时候查询~~引自http://topic.csdn.net/t/20041026/15/3492676.html 感谢vicky_jam做的总结:常用类型的数据原创 2008-05-29 00:46:00 · 2337 阅读 · 1 评论 -
系统菜单
最近忙里偷闲复习VC++,把丢掉的东西再捡回来;)活活~~~慢慢的在上面做笔记。所用书籍《VC++程序开发范例宝典》,《VC++6宝典》以及若干其他旧书。参考网摘如下:http://blog.csdn.net/zhangyuanlovelife/archive/2008/02/26/2121876.aspx 正文:1. 本文介绍如何向系统菜单中添加自己的菜单原创 2009-01-11 21:47:00 · 858 阅读 · 0 评论 -
路漫漫其修远兮,吾将上下而求索(2)
MFC 学习之二 程序没有调对~~ AppendMenu: 该方法用于在菜单的末尾添加一个新的菜单项。BOOL AppendMenu ( UINT nFlags, UINT nIDNewItem=0, LPCTSTR lpszNewItem=NULL); //nFlags, 表示菜单的状态信息原创 2009-01-15 16:21:00 · 510 阅读 · 0 评论 -
Getting started with Google Test (GTest) on Ubuntu
原文链接http://www.thebigblob.com/getting-started-with-google-test-on-ubuntu/Getting started with Google Test (GTest) on UbuntuGoogle test is a framework for writing C++ unit tests. In this short po转载 2012-08-27 17:17:25 · 1396 阅读 · 0 评论 -
gtest source code
gtest 里面有一段漂亮的宏定义代码大意就是说如果定义了跑出异常,就要在执行的时候判断,试图捕获异常,并处理异常如果没有定义就不用管了, 如下的红色代码所示,两段式一样的# if GTEST_HAS_EXCEPTIONS# define GTEST_EXECUTE_DEATH_TEST_STATEMENT_(statement, death_test) \ try {原创 2013-04-13 17:50:24 · 1107 阅读 · 0 评论 -
极不和谐的 fork 多线程程序
原文地址http://blog.codingnow.com/2011/01/fork_multi_thread.html极不和谐的 fork 多线程程序继续前几天的话题。做梦幻西游服务器优化的事情。以往的代码,定期存盘的工作分两个步骤,把 VM 里的动态数据序列化,然后把序列化后的数据写盘。这两个步骤,序列化工作并没有独立在单独线程/进程里做,而是放在主线程的。IO 部分则在一转载 2013-04-16 20:22:52 · 664 阅读 · 0 评论 -
c/C++的xml解析
现代的程序开发,难免会需要去解析一些静态数据。xml作为静态数据存储的一种常见方式,如何拿c/c++来解析,就成为了一个重要的话题。查阅了不少资料后,先决定试试tinyXml。因为它的风格,我更喜欢一些。下面简单的介绍一下如何使用。假设test.xml这么设计 233 11. 首先定义一个xml的文件对象: T原创 2013-04-29 19:34:21 · 1067 阅读 · 2 评论 -
c++ 特性回顾
声明和定义c++ 11 中增加了新的声明和定义方式,代码如下 17 #include <stdio.h> 18原创 2016-01-01 00:34:04 · 636 阅读 · 0 评论