C++基础
文章平均质量分 62
开水
Linux后台开发/C++/Python/MySQL/Shell/高性能存储服务
展开
-
C++常用数据类型数值范围
C++常用数据类型数值范围:(signed) char -128~127 unsigned char 0~255 (signed) short (int) -32,768~32,767(-2^15 ~ 2^15-1) unsigned short (i原创 2011-08-06 15:43:19 · 1294 阅读 · 0 评论 -
C++在循环内和循环外定义变量的差异(如何写出高效的for循环)
写这篇文章的原因是我在问答平台看到的一个问题:C++内层循环中定义变量和在外面定义比影响大吗?问题来自:http://ask.csdn.net/questions/176270 例如: for(int i=0;i<999;i++) { for(int j=0;j<999;j++); } 内层循环每次都定义j会造成多大的消耗呢?此处我给出的回答是:原创 2015-04-19 12:33:12 · 18903 阅读 · 3 评论 -
getopt和getopt_long函数
平时在写程序时常常需要对命令行参数进行处理,当命令行参数个数较多时,如果按照顺序一个一个定义参数含义很容易造成混乱,而且如果程序只按顺序处理参数的话,一些“可选参数”的功能将很难实现。在Linux中,我们可以使用getopt、getopt_long、getopt_long_only来对这个问题进行处理。 #include int getopt(int ar原创 2012-09-04 17:44:21 · 54488 阅读 · 14 评论 -
Unix时间戳字符串转int (unixtime)
#include #include using namespace std;// 转换形如 2014-06-01 00:00:00 的时间戳到unixtime inline time_t GetUnixTime(const char *pszTimeStamp){ struct tm stTime; memset(&stTime, 0, sizeof(stTime))原创 2014-08-13 16:08:30 · 4149 阅读 · 0 评论 -
Windows下使用FindFirstFile和FindNextFile列举目录中的文件
在Windows下编程经常需要列举出某个目录下的所有文件,以便对该目录下的文件进行批量处理,这种情形下,我们可以使用windows api提供的FindFirstFile和FindNextFile。MSDN对这两个函数的文档:http://msdn.microsoft.com/zh-cn/library/aa914391(en-us).aspxhttp://msdn.microsoft原创 2013-03-01 20:51:49 · 9097 阅读 · 0 评论 -
Makefile 函数大全
【文章摘自www.gnu.org,点击此处查看原页面】8.1 Function Call SyntaxA function call resembles a variable reference. It looks like this: $(function arguments)or like this: ${function arguments}H转载 2013-02-22 18:52:53 · 7877 阅读 · 0 评论 -
大端(Big Endian)、小端(Little Endian)存储模式名字的来历
这篇文章不是用来告诉你怎么判断计算机是大端模式还是小端模式的,这样的文章有一大把,若只想知道这个,请直接绕道。--->http://baike.baidu.com/view/1922338.htm其实知道大端小端的概念挺久了,只是我一直在琢磨它们名字是怎么来的,以前不熟悉的时候还经常把这两个模式混淆。今天探究根底,终于知道了来历,相信看了这篇博文的朋友们再也不会记错什么是大端,什么是小端了。原创 2012-11-25 00:08:43 · 2390 阅读 · 3 评论 -
rand、srand的实现机制
rand和srand是用于产生伪随机数的两个函数,根据参考手册rand的返回值是在[0, RAND_MAX]之间的数据,RAND_MAX在不同的系统中数值有所不同。以下是rand和srand实现方式的一个示例(假定RAND_MAX为32767)static unsigned long next = 1;/* RAND_MAX assumed to be 32767 */int ran原创 2012-09-03 16:40:43 · 5844 阅读 · 0 评论 -
如何让窗口重画——Invalidate()、SendMessage(WM_PAINT)和UpdateWindow()
昨天晚上讨论的问题,还有另外一个很重要的部分——如何让窗口重画。这里注意这样几点(这里讨论的函数都是CWnd对象的成员函数):@1.Invalidate()函数只是标记窗口区域需要重画,但不意味着窗口会被直接重画。它只会在下一个WM_PAINT消息被接收到时,调用OnPaint()才被重画。@2.当窗口的“消息队列中没有其他消息”且“窗口需要被重画的区域不为空时原创 2012-03-14 14:17:18 · 11148 阅读 · 2 评论 -
将桌面显示获取并保存到bmp中
代码来自网络,在此分享://GrabScreenToBitmap.h#ifndef GRABSCREENTOBITMAP_H#define GRABSCREENTOBITMAP_HHBITMAP GrabScrToBmp(LPRECT lpRect);BOOL CopyBmpToClipBoard(const HBITMAP hBmp);BOOL SaveBmpToFile转载 2012-03-27 15:33:23 · 1504 阅读 · 0 评论 -
对对碰(宝石迷阵 Bejeweled)游戏求解算法
#include =using namespace std;const int nGridCount = 8;int s_color[nGridCount][nGridCount] = { 34, 92, 26, 34, 93, 10, 34, 39, 10, 10, 34, 39, 15, 15, 39, 93, 15, 26, 26, 93, 93, 39,原创 2012-03-25 02:50:57 · 7186 阅读 · 2 评论 -
回车字符'\r'与换行字符'\n'
大家都知道,在Windows下,一个纯文本文档表示换行用\r\n,而在Unix下用\n。'\r'表示回车,'\n'表示换行,很多人可能不太清楚它们的区别,我们可以在控制台下做个试验。当程序中输出\r时#include int main(){ int i = 0; while (++i < 100000) printf("%d\r", i);原创 2012-01-13 12:12:09 · 5723 阅读 · 0 评论 -
控制台 贪吃蛇 游戏
贪吃蛇游戏使用的算法是一个比较简单的算法,它可以用一个Double Ended Queue实现用一个deque按顺序存下蛇身体上所有点的位置0.先计算蛇头移动到下一个点的位置,如果下一个点的位置还在地图内,且不与蛇身相撞,则有下面两种可能:1.当蛇向前移动时,将下一个点的位置设置为蛇头(即从deque左端插入一个新的点),而蛇往前挪了一步,所以要把蛇尾的点删除掉(即从deque尾端删除原创 2012-01-03 14:57:50 · 2676 阅读 · 1 评论 -
C、C++一次将整个文件读入内存
@1.问题描述: C和C++的初学者经常采用一行一行读入文件的办法对文件数据进行处理。但是经常会有一些情况需要将一个文件整体一次读入内存处理。而C和C++库中并没有提供直接一次读入文件全部数据的函数。@2.解决方法: 目前给出C和C原创 2011-09-12 14:54:55 · 73055 阅读 · 10 评论 -
使用函数指针列表搭建程序框架
问题描述:如果我们需要做一个这样的程序,当用户输入"hello"时,我调用hello函数,当用户输入"hey"时,我调用hey函数,像这样的对应关系,用户可能会有数千种输入,每种输入对应一个我需要调用的函数。一般的方法,肯定是这样,在程序处理流程中,这样写: if (0 == strcmp(strInput, "hello")) { hello();原创 2012-12-19 23:44:42 · 3125 阅读 · 0 评论