wink's

梦想总比现实闪耀,所以我一路追寻

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

2012年3月17日

摘要: 摘要:本文从介绍基础概念入手,探讨了在C/C++中对日期和时间操作所用到的数据结构和函数,并对计时、时间的获取、时间的计算和显示格式等方面进行了阐述。本文还通过大量的实例向你展示了time.h头文件中声明的各种函数和数据结构的详细使用方法。关键字:UTC(世界标准时间),Calendar Time(日历时间),epoch(时间点),clock tick(时钟计时单元)1.概念在C/C++中,对字符串的操作有很多值得注意的问题,同样,C/C++对时间的操作也有许多值得大家注意的地方。最近,在技术群中有很多网友也多次问到过C++语言中对时间的操作、获取和显示等等的问题。下面,在这篇文章中,笔者将主 阅读全文
posted @ 2012-03-17 20:07 wink's 阅读(25022) 评论(0) 推荐(0) 编辑

2012年3月14日

摘要: 今天复习算法, 自然归并算法令我挺感兴趣,结果网上找到的基本都不怎么准确,下面通过自己的一些修改,贴出一份正确的代码! 自然归并中,有一些已经自然排好序的序列,我们称其为有序子序列! 1 void NaturalMergeSort(T aSrc[], int n) 2 { 3 T *pTmp = new T[n]; 4 int aiBreakPoint[n]; //包含各有序子序列断点 5 int iBpCnt = 0; //断点数量 6 aiBreakPoint[iBpCnt++] = 0; //aiBreakPoint[0]永远指向第一个元素 7 for (int... 阅读全文
posted @ 2012-03-14 20:11 wink's 阅读(462) 评论(0) 推荐(0) 编辑

2012年3月12日

摘要: 这段时间在做一个CS模式的项目,服务端运行在linux/windows平台下,使用C语言;客户端运行在windows下,使用MFC开发;开发工具为VC++6.0企业版。。在开发服务端时,由于是使用C语言,所以经常使用malloc,free等C语言函数;在开发起初阶段,由于只是开发基础模块和基本的功能组件,所以不牵涉到多线程的开发。在开发过程中,团队的每个成员都就自己的模块编写测试用例,测试用例主要是让模块的功能流程跑一遍并确保正常。前期基本框架搭好之后,后面主要就功能业务进行开发,其中肯定要使用到多线程技术。。。在每个线程中肯定会调用malloc 和free等函数;开发一个模块之后,如果可以联 阅读全文
posted @ 2012-03-12 14:30 wink's 阅读(436) 评论(0) 推荐(1) 编辑

2012年3月4日

摘要: [转]winsock和winsock2冲突出处:不详在初学Windows网络编程时,曾经遇到过两类编译错误(VC6的Build窗口哗哗的显示了102个Errors),都是些类型未定义或者重复定义问 题,让我感到很郁闷。这两种错误情况下的第一条错误信息分别为:错误情形1:mswsock.h(69) : error C2065: 'SOCKET' : undeclared identifier错误情形2:winsock2.h(99) : error C2011: 'fd_set' : 'struct' type redefinition后来,我静下心 阅读全文
posted @ 2012-03-04 15:16 wink's 阅读(502) 评论(0) 推荐(0) 编辑

2012年2月17日

摘要: 我现在项目是一个控制台程序,用到的Win32API都是与界面无关的,今天需要加入定时器刷新的功能,由于没有消息循环,所以WM_TIMER消息应该如何处理呢?综合了下网上找到的资料,写了个简单的demo,个人以为这种在一个线程中创建定时器,再通过指定的回调函数来处理定时器触发的模式是比较好的。#include<windows.h>#include<stdio.h>#include<conio.h>intcount=0;VOIDCALLBACKTimerProc(HWNDhwnd,UINTuMsg,UINT_PTRidEvent,DWORDdwTime){cou 阅读全文
posted @ 2012-02-17 11:48 wink's 阅读(385) 评论(0) 推荐(0) 编辑

2012年2月14日

摘要: 其实很早在看LINUX下就看到这个东西,后来在MFC内存池里同样也看到了类似的东西,还依照MFC写过一个类似的小内存池,(MFC用的是return this + 1)后来在李先静的《系统程序员成长计划》里看到了类似的定义,于是心里想着总结一下,结果发现网上已经有牛人总结的很好了,于是乎就转了过来,谢谢你们的分享,这是我前进的动力!同时,需要引起注意的:ISO/IEC9899-1999里面,这么写是非法的,这个仅仅是GNUC的扩展,gcc可以允许这一语法现象的存在。但最新的C/C++不知道是否可以,我没有测试过。(C99允许。微软的VS系列报一个WARNING,即非常的标准扩展。)结构体最后使用 阅读全文
posted @ 2012-02-14 22:13 wink's 阅读(5301) 评论(1) 推荐(2) 编辑

2012年2月9日

摘要: 首先,产生这个错误的原因是因为在显卡上运行程序的时间过长.windows有这个机制:如果在显卡上运行时间过长,windows会自动结束这个程序,因为windows不知道程序是不是已经在显卡上无响应了.解决办法:微软说可以通过修改注册表来解决,但是我没修改成功.我是通过另外一个方法.首先我的电脑是有一个集成显卡,一个独立显卡.用独立显卡做CUDA计算.我把显示屏连接到了集成显卡上,这样就不会出现timed out的错误了.不过在此之间需要进行一个小设置.就是将2块显卡都接上屏幕,然后在windows的屏幕设置那里,设置成只在屏幕1(集成显卡连接的屏幕)上显示内容,这时屏幕2(独立显卡连接的屏幕) 阅读全文
posted @ 2012-02-09 20:56 wink's 阅读(2219) 评论(0) 推荐(0) 编辑

2012年1月20日

摘要: CUDA 函数前缀与存储器前缀讨论在CUDA C语言对C语言的扩展之一就是加入了一些函数前缀和存储器前缀,它们是:函数前缀:__device__ , __global__, __host__存储器类型前缀:__device__, __shared__, __constant__(constant, 不是const)其中__是两条下划线。值得注意的是函数前缀和存储器前缀中都有__device__,但表达的意思不同。在早期版本的CUDA中曾经还有__local__前缀用于限定将某些变量放在local memory中,但是后来的版本决定由编译器决定将变量放在local memory还是registe 阅读全文
posted @ 2012-01-20 16:14 wink's 阅读(851) 评论(0) 推荐(0) 编辑

2012年1月3日

摘要: 通过运行时类型识别(RTTI), 我们能够使用基类的指针或引用来判定这些指针或引用实际指向对象的类型。这要求基类中至少要有一个虚函数。 RTTI实现的基石是每个类型对应的一个const type_info类型对象,它存储了这个对象的确切类型信息。注意,一个类型对应一个type_info对象,而不是一个对象。无论是基本类型还是用户自定义类型,都需要额外的内存来存放此类型对应的type_info对象。一般情况,一个类型对应一个type_info对象。有的时候,需要为一种类型产生多个type_info对象:一个类继承自多个继承分支,并且多于或等于2个继承分支上存在多态类。 type_info类重载. 阅读全文
posted @ 2012-01-03 16:09 wink's 阅读(319) 评论(0) 推荐(0) 编辑

2011年12月21日

摘要: 今天闲来无事.就想看看sizeof到底是怎么回事.于是,反汇编之! int _tmain(int argc, _TCHAR* argv[]){ int i=sizeof(int); return 0;}反汇编后int _tmain(int argc, _TCHAR* argv[]){00411370 push ebp 00411371 mov ebp,esp 00411373 sub esp,0CCh 00411379 push ebx 0041137A push esi 0041137B push edi 0041137C lea edi,[ebp-0CCh] 00411382 m... 阅读全文
posted @ 2011-12-21 12:34 wink's 阅读(222) 评论(0) 推荐(0) 编辑