
C/C++
文章平均质量分 59
Mirage520
这个作者很懒,什么都没留下…
展开
-
C++内联函数(Inline)介绍-ZT
ZT:http://www.yesky.com/221/204721.shtml 介绍内联函数之前,有必要介绍一下预处理宏。内联函数的功能和预处理宏的功能相似。相信大家都用过预处理宏,我们会经常定义一些宏,如#define TABLE_COMP(x) ((x)>0?(x):0) 就定义了一个宏。 为什么要使用宏呢?因为函数的调用必须要将程序执行的顺序转原创 2009-11-08 21:11:00 · 813 阅读 · 0 评论 -
关于LNK2001错误的一些总结 ---ZT
ZT:http://topic.youkuaiyun.com/t/20021122/09/1196623.html 关于LNK2001错误的一些总结 在最开始的编程过程中,最常出现的错误就是LNK2001这个错误,究其原因,其实一句话可以解释:当程序调用函数(function1)时,没有找到function1具体的实现部分。 最常见的例子和解释: main原创 2009-11-23 17:38:00 · 678 阅读 · 0 评论 -
fatal error C1083: Cannot open include file: 'stdlib': No such file or directory
想从新学C++,于是把那本>从头来看。 运行第5章的洗牌例子,编译出了几个异常,如题,还有time.h这个头文件。 fatal error C1083: Cannot open include file: stdlib: No such file or directory 原来在C++里面要把stdlib改成cstdlib, time改成ctime。 结果在使用原创 2009-11-24 11:27:00 · 7538 阅读 · 2 评论 -
rand函数和srand函数:产生随机数-ZT
ZT:http://blog.youkuaiyun.com/ycs0501/archive/2009/03/09/3973568.aspx rand(产生随机数) 相关函数 srand 表头文件 #include 定义函数 int rand(void) 函数说明 rand()会返回一随机数值,范围在0至RAND_MAX 间。在调用此函数产生随机数前,必须先利用srand()设好随机数种子,转载 2009-11-23 16:07:00 · 847 阅读 · 0 评论 -
setw(0)和setprecision(n)的用法 -ZT
ZT:http://zhidao.baidu.com/question/40428515.html 使用setprecision(n)可控制输出流显示浮点数的数字个数。C++默认的流输出数值有效位是6。 如果setprecision(n)与setiosflags(ios::fixed)合用,可以控制小数点右边的数字个数。setiosflags(ios::fixed)是用定点方式表示原创 2009-11-23 18:17:00 · 1438 阅读 · 0 评论 -
C/C++中的按值调用与按引用调用
许多编程语言中的调用函数的两种方法是按值调用(call-by-value)和按引用调用(call-by-reference)。参数按值调用传递时,生成参数值副本并且传给被调用函数,副本的改变并不影响调用者的原始变量值,这样就可以防止意外的副作用影响开发正确,可靠的系统。按值调用的一个缺点是,如果传递较大的数据项,则复制这个数据可能要占用相当长的执行时间。 而引用调用,调用者让被调用者原创 2009-11-24 14:00:00 · 2293 阅读 · 0 评论 -
C++的memset函数
ZT:http://www.cppblog.com/zhangyq/archive/2009/01/06/71385.html 先看看下面的代码:char Array[12];memset(Array,0,strlen(Array));int Result = 0;if(!Array){ Result = 1;}程序执行到最后,Result的值还是为0.memset函数的原型是v转载 2009-11-26 16:25:00 · 1152 阅读 · 0 评论 -
标准C++的类型转换符:static_cast、dynamic_cast、reinterpret_cast和const_cast
C 风格(C-style)强制转型如下: (T) exdivssion // cast exdivssion to be of type T 函数风格(Function-style)强制转型使用这样的语法: T(exdivssion) // cast exdivssion to be of type T 这两种形式之间没有本质上的不同,它纯粹就是一个把括号放在哪的问题。我把这转载 2010-02-02 14:21:00 · 520 阅读 · 0 评论 -
C语言给指针分配内存
C 语言的内存分配很简单: malloc、calloc、realloc、free malloc(字节数); 返回内存段的首地址, void 的. calloc(个数, 类型大小); 和 malloc 的区别就是它会初始化内存为空. realloc(原指针, 字节数); 重新分配由 malloc、calloc 分配的内存; 这里有太多注意事项: 1、如果缩小了, 会截掉一块,转载 2010-02-25 13:58:00 · 4594 阅读 · 0 评论 -
配置VS2008自带的SQL Server 2005 Express sa登陆
转帖:http://blog.youkuaiyun.com/lylasi/archive/2010/03/29/5430219.aspx终于也装上了VS2008。它自带的SQL Server 2005 Express,小巧,而且可以把原来2000版本的数据库兼容进来。用来测试程序很实用但是它默认是把sa账户禁用,那就意味着通过网络TCP/IP连接方式就不可行(单机版数据库)。开始动手吧。第一件事,下载它的管理工具 SQL Server Management Studio Express。VS2008安装程序没有,需要从转载 2011-02-28 15:03:00 · 1645 阅读 · 0 评论 -
visual 2008中error PRJ0003 : 生成 cmd.exe 时出错”
<br /> 刚装完Visual2008,建了个Win32工程,一编译就出现 “项目 : error PRJ0003 : 生成“cmd.exe”时出错。”。<br /> 解决方案:工具—>选项—>项目和解决方案—>VC++目录,在可执行文件栏中加上如下路径:<br />$(SystemRoot)/System32<br />$(SystemRoot)<br />$(SystemRoot)/System32/wbem <br />现在运行成功了,输出内容:<br />------ 已启动生成: 项目: Ga转载 2011-02-11 09:55:00 · 707 阅读 · 0 评论 -
error C2440: ’static_cast’
<br />转帖:http://blog.youkuaiyun.com/stilling2006/archive/2010/06/18/5676794.aspx<br /> <br /> <br />error C2440: “static_cast”: 无法从“void (__thiscall CChatDlg::* )(WPARAM,LPARAM)”转换为“LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM)”<br />1> 从基类型到派生类型的强制转换需要 dy转载 2011-02-13 02:21:00 · 4390 阅读 · 1 评论 -
VS 没有找到mspdb80.dll 错误;与 fatal error C1902: 程序数据库管理器不匹配;请检查安装
将C:/Program Files/Microsoft Visual Studio 9.0/Common7/IDE/mspdb80.dll复制至C:/Program Files/Microsoft Visual Studio 9.0/VC/bin/ ,则上述错误消失转载 2011-02-23 19:12:00 · 1624 阅读 · 0 评论 -
gcc - 用于linux系统下编程的编译器
概述 GCC(GNU Compiler Collection,GNU编译器套装),是一套由 GNU 开发的编程语言编译器。它是一套 GNU编译器套装以 GPL 及 LGPL 许可证所发行的自由软件,也是 GNU计划的关键部分,亦是自由的类Unix及苹果电脑 Mac OS X 操作系统的标准编译器。 GCC 原名为 GNU C 语言编译器,因为它原本只能处理 C语言。GCC 很快地扩展,变得可处理 C++。之后也变得可处理 Fortran、Pascal、Objective-C、Java, 以及 Ad转载 2011-05-12 23:56:00 · 1406 阅读 · 0 评论 -
c++对象和内存
<br />转帖:http://blogold.chinaunix.net/u2/79570/showart_2084600.html<br /> <br />我们先回顾一下类和对象的定义,类是定义同一类所有实例变量和方法的蓝图或原型;对象是类的实例化。从内存的角度可以对这两个定义这样理解,类刻画了实例的内存布局,确定实例中每个数据成员在一块连续内存中的位置、大小以及对内存的解读方式;对象就是系统根据类刻画的内存布局去分配的内存。除了实例变量和方法,类也可以定义类变量和类方法,这是我们通常所说的静态变量和静转载 2011-04-07 11:26:00 · 940 阅读 · 0 评论 -
Linux下的多线程编程
1 引言 线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者。传统的Unix也支持线程的概念,但是在一个进程(process)中只允许有一个线程,这样多线程就意味着多进程。现在,多线程技术已经被许多操作系统所支持,包括Windows/NT,当然,也包括Linux。 为什么有了进程的概念后,还要再引入线程呢?使用多线程到转载 2011-06-17 13:35:00 · 813 阅读 · 0 评论 -
VS2008 VC 如何把图片等资源文件通过本地路径加载方式加载
HBITMAP hBmp = (HBITMAP)::LoadImage(0, "path//1.bmp", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE); 添加个静态控件,再用SetBitmap就可以了。jpg,gif用这种方法是不行的。转载 2011-06-21 17:36:00 · 3942 阅读 · 0 评论 -
#param预编译指示符
在所有的预处理指令中,#Pragma指令可能是最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作。#pragma指令对每个编译器给出了一个方法,在保持与C和C++语言完全兼容的情况下,给出主机或操作系统专有的特征。依据定义,编译指示是机器或操作系统专有的,且对于每个编译器都是不同的。其格式一般为: #Pragma Para其中Para 为参数,下转载 2011-06-22 10:47:00 · 2075 阅读 · 0 评论 -
MFC对话框添加背景图片
问题 有的程序员希望在自己的应用程序中以有趣味的位图来代替对话框中令人讨厌的灰色背景,希望位图在对话框中看起来象墙纸而且并不影响对话框中的控制或静态文本的显示。 许多程序员找不到一个改变窗口背景的简单方法,是否有方法利用 Windows API 函数来改变对话框的背景为某个位图呢? 方法 改变对话框的背景为某个位图并不困难,关键是需要清转载 2011-06-22 11:29:00 · 1219 阅读 · 0 评论 -
Linux环境进程间通信(四)
信号灯郑彦兴 (mlinux@163.com)国防科大计算机学院简介: 信号灯与其他进程间通信方式不大相同,它主要提供对进程间共享资源访问控制机制。相当于内存中的标志,进程可以根据它判定是否能够访问某些共享资源,同时,进程也可以修改该标志。除了用于访问控制外,还可用于进程同步。本文的标签: 信号灯, 内核, 编码标记本文!转载 2011-06-29 10:57:00 · 692 阅读 · 0 评论 -
Linux 环境进程间通信(六)
套接口郑彦兴 (mlinux@163.com)国防科大计算机学院简介: 在本专题的前面几个部分,如消息队列、信号灯、共享内存等,都是基于Sys V的IPC机制进行讨论的,它们的应用局限在单一计算机内的进程间通信;基于BSD套接口不仅可以实现单机内的进程间通信,还可以实现不同计算机进程之间的通信。本文将主要介绍BSD套接口(sockets),以及基于套接口的重转载 2011-06-29 10:59:00 · 749 阅读 · 0 评论 -
eclipse 函数编译时报错:undefined reference to `pthread_create’
Eclipse + CDT:pthread_create函数编译时报错:undefined reference to `pthread_create’undefined reference to `pthread_create’undefined reference to `MD5′由于pthread 库不是 Linux 系统默认的库,连接时需要使用静态库 libpthread转载 2011-06-29 13:12:00 · 1330 阅读 · 0 评论 -
分清函数指针和指针函数
1.指向函数的指针(函数指针)来分析这样一个声明,void (*f) ( ); 虽然( )的优先级高于*,但由于有括号存在,首先执行的是解引用,所以f是一个指针;接下来执行( ),表明f指向一个函数,这个函数不返回任何值。现在得出结论:f是一个指向不接受参数且不返回任何值的函转载 2011-08-02 09:36:52 · 570 阅读 · 0 评论 -
关于setjmp和longjmp的使用
解决这种问题的方法就是使用非局部跳转——setjmp和longjmp函数。非局部表示这不是在一个函数内的普通的C语言goto语句,而是在栈上跳过若干调用帧,返回到当前函数调用路径上的一个函数中。#include int setjmp(jmp_buef nv);返回:若转载 2011-09-01 11:29:19 · 1160 阅读 · 0 评论 -
在Ubuntu下配置eclipse开发GTK+
Eclipse是著名的跨平台的自由集成开发环境(IDE)。最初主要用来Java语言开发,但是目前亦有人通过插件使其作为其他计算机语言比如C++和Python的开发工具。Eclipse的本身只是一个框架平台,但是众多插件的支持使得Eclipse拥有其他功能相对固定的IDE软件很难具转载 2011-09-05 14:08:28 · 2080 阅读 · 1 评论 -
字节序和网络字节序
1 字节序由于不同的计算机系统采用不同的字节序存储数据,同样一个4字节的32位整数,在内存中存储的方式就不同. 字节序分为小尾字节序(Little Endian)和大尾字节序(Big Endian), Intel处理器大多数使用小尾字节序, Motorola处理器转载 2011-08-11 16:18:43 · 726 阅读 · 0 评论 -
Ubuntu 下安裝 GTK
在撰寫這篇教學文件時正好在玩Ubuntu,這邊說明一下如何在Ubuntu下設定GTK開發基本環境。由於GTK基本上主要以C語言來撰寫,您必須有C編譯器,Ubuntu預設安裝好後就有gcc了,不過缺少必要的Header file,您可以在文字模式下,安裝build-esse转载 2011-09-10 23:19:07 · 708 阅读 · 0 评论 -
getaddrinfo函数
今天在看完APUE第16章:网络IPC:套接字后,就开始编写书中的示例代码,结果出现了问题:调用getaddrinfo函数时,返回错误:Servname not supported for ai_socktype,觉得很费解,就直接google之,发现下面这篇好文,不仅解转载 2011-08-15 17:20:42 · 1245 阅读 · 0 评论 -
Linux下的段错误产生的原因及调试方法
简而言之,产生段错误就是访问了错误的内存段,一般是你没有权限,或者根本就不存在对应的物理内存,尤其常见的是访问0地址.一般来说,段错误就是指访问的内存超出了系统所给这个程序的内存空间,通常这个值是由gdtr来保存的,他是一个48位的寄存器,其中的32位是保存由它指向的gd转载 2011-08-17 14:29:43 · 580 阅读 · 0 评论 -
Ubuntu下有几个C/C++的IDE,现在来对做一下简单的比较
1、VIM首先要说的是VIM。其实,VIM只是一个编辑器,不能算是IDE。虽说VIM有很多插件,例如代码折叠、递进等,可以将 VIM组建成几乎类似一个IDE,但始终它不是专门的IDE,所以在功能支持上还是远不如那些专门的IDE如:eclipse和 code::blocks。用转载 2011-09-16 15:44:01 · 13004 阅读 · 1 评论 -
C语言 打造最快的Hash表
转贴:http://www.vcgood.com/bbs/forum_posts.asp?tid=771(暴雪用的MPQ文件)最近在网上看到篇文章,一起拜一拜暴雪先提一个简单的问题,如果有一个庞大的字符串数组,然后给你一个单独的字符串,让你从这个数组中查找是否有这个字转载 2011-08-26 10:02:03 · 1232 阅读 · 0 评论 -
C语言深入浅出可变参数函数的使用技巧
VA函数(variable argument function),参数个数可变函数,又称可变参数函数。C/C++编程中,系统提供给编程人员的va函数很少。*printf()/*scanf()系列函数,用于输入输出时格式化字符串;exec*()系列函数,用于在程序中执行外部文件(m转载 2011-08-26 15:11:09 · 654 阅读 · 0 评论 -
从头到尾彻底解析Hash表算法
作者:July、wuliming、pkuoliver 出处:http://blog.youkuaiyun.com/v_JULY_v。 说明:本文分为三部分内容, 第一部分为一道百度面试题Top K算法的详解;第二部分为关于Hash表算法的详细阐述;第三部分为打造一个最快转载 2011-08-30 09:23:13 · 687 阅读 · 0 评论 -
魔兽哈希算法封装和测试
转自博客 http://blog.youkuaiyun.com/eaglewood2005/ 近期由于需要,研究了魔兽文件打包管理器的相关算法,重点对其文件索引表的生成和查找进行了研究:采用哈希表进行,在冲突方面的处理方面,采用线性探测再散列。在添加和查找过程中进行了三转载 2011-08-30 10:56:21 · 923 阅读 · 0 评论 -
10个经典的字符串hash函数的C代码实现
unsigned int RSHash(char* str, unsigned int len) { unsigned int b = 378551; unsigned int a = 63689; unsigned int转载 2011-08-30 11:48:00 · 2688 阅读 · 0 评论 -
C语言实现的Web服务器
转贴:http://blog.sina.com.cn/s/blog_4b73e760010007id.html自己研究了好几天终于写出来一个,哈哈,当然也从网上得到了很多的帮助拉。谢谢大家咯!这个版本还不是很完善,但Web服务器的基本框架已经出来了,还有部分的功能需要转载 2011-08-31 10:45:12 · 1221 阅读 · 0 评论 -
用C语言实现的简单Web服务器(Linux)
转贴:http://blogold.chinaunix.net/u3/104217/showart_2056699.html相信大家对Apache都有所听闻,Apache是目前使用最为广泛我Web服务器。大家可以从http://news.netcraft.com/这个转载 2011-08-31 10:55:49 · 3749 阅读 · 3 评论 -
一个使用FFmpeg库读取3gp视频的例子-Android中使用FFmpeg媒体库
在续系列文章在32位的Ubuntu 11.04中为Android NDK r6编译FFmpeg0.8.1版-Android中使用FFmpeg媒体库(一)和在Android中通过jni方式使用编译好的FFmpeg库-Android中使用FFmpeg媒体库(二)文章后,本文将根据github中churnlabs的一个开源项目,来深入展开说明如何使用FFmpeg库进行多媒体的开发。本文中的代码来自于转载 2011-12-22 13:55:12 · 1271 阅读 · 0 评论 -
vc中对话框使用技巧集合(上)
注:以下代码以一个名为CTest6Dlg的对话框类为例--------------------------------------------------------------------------------1. 在任务栏隐藏对话框 ModifyStyleEx(WS_EX_APPWINDOW, WS_EX_TOOLWINDOW);---------转载 2012-01-07 01:01:25 · 2141 阅读 · 0 评论 -
多文档如何隐藏菜单
BOOL C...Frame::PreCreateWindow(CREATESTRUCT& cs) { if( !CFrameWnd::PreCreateWindow(cs) ) return FALSE; cs.hMenu = NULL; return TRUE; } =======转载 2012-01-31 17:26:37 · 789 阅读 · 0 评论