
c/c++
文章平均质量分 58
onion____
这个作者很懒,什么都没留下…
展开
-
由atof发现的C中浮点小数不精确问题
比如 输入1.9会显示1.899999 类似的问题 由于C语言中对于浮点小数的表达方式的局限导致的。C语言中10进制小数是直接用2进制小数来表示的。由于某些10进制小数根本无法用2进制小数来精确表达,譬如0.1,导致计算机不得不用近似的相差很小的2进制小数来表示这些10进制小数。 既然是近似,就一定有差异,多次累加之后这些小差异积累起来出现了如上现象。原创 2010-03-02 13:23:00 · 4453 阅读 · 0 评论 -
MFC之头文件相互包含问题及解决方法 error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
<br /><br />问题一:<br />error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int<br />原因分析:<br />1. (此情况经常出现在大型工程项目中)如果存在两个类的头文件a.h和b.h,在a.h中有这样的语句:#include "b.h",在b.h文件中有这样的语句:#include "a.h"且在一个类中有另一个类的对象时,那么就会出现这样的错误。<br />2. 没有包含要定义的类的头文件。<br />3.项目中少加了宏定义,导致头文件重转载 2011-04-22 23:05:00 · 6128 阅读 · 0 评论 -
使用 getopt() 进行命令行处理
http://www.ibm.com/developerworks/cn/aix/library/au-unix-getopt.html转载 2013-04-02 13:31:31 · 768 阅读 · 0 评论 -
c语言操作mysql
Ubuntu自带mysql 所以不用安装。登陆命令:mysql -uroot –p 然后根据提示输入密码 FAQ:1. ERROR 1045 (28000): Accessdenied for user 'nsfocus'@'localhost'解决办法:# sudo /etc/init.d/mysqlstop# sudo mysqld_safe --原创 2013-03-26 14:03:20 · 949 阅读 · 0 评论 -
C/C++内存泄漏及检测
http://www.cnblogs.com/skynet/archive/2011/02/20/1959162.html转载 2013-04-17 17:01:43 · 784 阅读 · 0 评论 -
通过自定义文件启动程序并读取
BOOL CXXXApp::InitInstance(){ CCommandLineInfo cmdInfo; ParseCommandLine(cmdInfo); CString strFilePathName = cmdInfo.m_strFileName; if (!strFilePathName.IsEmpty()) { dlg.m_strFileName = strF原创 2013-05-09 17:27:11 · 745 阅读 · 0 评论 -
syslog日志服务器架设攻略
http://www.linuxany.com/archives/162.html转载 2013-10-28 17:14:46 · 1028 阅读 · 0 评论 -
gtest
http://liuxun.org/blog/google-testlinux-xia-de-an-zhuang-he-dai-ma-ce-shi/转载 2013-10-28 14:28:17 · 761 阅读 · 0 评论 -
zlog
http://hardysimpson.github.io/zlog/UsersGuide-CN.html#note1转载 2013-12-30 14:46:18 · 681 阅读 · 0 评论 -
内存访问越界
<br />1. 原理分析<br />经常有些新C++程序员问:C++的类的成员个数是不是有限制,为什么我加一个变量后程序就死了?或者说:是不是成员变量的顺序很重要,为什么我两个成员变量顺序换一换程序就不行了?凡此种种之怪现象,往往都是内存访问越界所致。<br /><br />何谓内存访问越界,简单的说,你向系统申请了一块内存,在使用这块内存的时候,超出了你申请的范围。例如,你明明申请的是100字节的空间,但是你由于某种原因写入了120字节,这就是内存访问越界。内存访问越界的后果是:你的写入破坏了本不属于你原创 2011-02-27 11:09:00 · 1018 阅读 · 0 评论 -
浅析stack around the variable was corrupted
我在完成老师布置的课程设计时遇到了这样的错误:stack around the variable “XX” was corrupted.,中文翻译就是“在变量XX周围的堆栈已损坏”。后面在上网看了很多技术资料,发现大多数网站都有这样的文章:Code:把 project->配置属性->c/c++->代码生成->基本运行时检查 为 默认值 就不会报本异常。具体原因正在研究中。。。 如果改为其他就有exception。 exception有时是有道理的 // step 1 STRINGC2&转载 2011-02-27 11:10:00 · 4102 阅读 · 0 评论 -
宽字符、单字符之间的转换 Convert Between UNICODE & ASCII
C++标准里面提供:#include 宽字节转单字节 :size_twcstombs(char*mbstr,constwchar_t*wcstr,size_tcount);单字节转宽字节 :size_tmbstowcs(wchar_t*wcstr,constchar*mbstr,size_tcount);微软提供:宽字节转多字节 :WideCharToMultiByte //其实这里的多字节就是我们说的char多字节转宽字节 :MultiByteToWideChar //多字节也就是ASCII单字节原创 2011-02-01 11:29:00 · 1186 阅读 · 0 评论 -
C/C++的内存机制
<br />一.首先, 在c中分为这几个存储区 <br />1.栈 - 由编译器自动分配释放 <br />2.堆 - 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收 <br />3.全局区(静态区),全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。- 程序结束释放 <br />4.专门放字符串常量的地方。- 程序结束释放 <br />5 程序代码区,存放2进制代码。<br />原创 2010-12-27 10:02:00 · 699 阅读 · 0 评论 -
VC6编写的程序移植到VS2010中编译时error C2440: “static_cast”问题的解决
<br /><br />编写自定义消息映射的时候,VS编译器报错:<br />error C2440: “static_cast”: 无法从“LRESULT (__thiscall CSimpleThreadDlg::* )(void)”转换为“LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM)”<br />原因是VC6项目移植到编译时检查更严格的VS2010上,需要针对源代码做出更改,解决方法很简单:<br />ON_MESSAGE消息在afxmsg_.h中有原创 2010-12-27 21:16:00 · 4611 阅读 · 1 评论 -
const static 区别
1、使用const 这一点在很多经典的关于C 和C++的书籍中是必谈的要点。在《Exceptional C++》一书中,对这点有很精彩的描述,现摘录如下:“没有正确的安全意识的枪手在世界上是不可能活的很长的。const 观念不正确的程序员也是一样和没有时间戴紧帽子的正确,没有时间检查带电电线的电工一样不会活的很长。”在C 语言中,const 修饰符表示告诉编译器此函数将不会改变被修饰的变量的指向的任何值(除了强制类型转换)。当把指针作为参数传递时,总是合适地使用const,不仅可以防止你无意中错误的赋值,原创 2010-11-04 16:31:00 · 848 阅读 · 0 评论 -
C/C++中near和far的区别
在80286以前的微处理器(CPU)组成的确16位机上,Windows操作系统(包括DOS)对于内存是分段使用的(分段内存模式,Segment Memory Mode)。运行在这些16位CPU微机上的Windows(Windows 1.0-3.1)被称为“Win16”。从80386开始的32位CPU开始,为了兼容,也采用上述分段内存模式,这就导致了near(short)、 far(long)指针的出现。 从Windows 95开始的32位机上,Windows支持32位平面内存模式(与“原创 2010-11-07 11:28:00 · 1899 阅读 · 0 评论 -
[c/c++] 时间、日期处理
类型:time_t相关函数: time() http://baike.baidu.com/view/10368.html#2difftime() http://baike.baidu.com/view/656621.htmmktime() http://baike.baidu.com/view/2884575.htm类型:struct tm相关函数:localtime() http://baike.baidu.com/view/1080853.htmgmtime() http://baike.baidu原创 2010-11-20 15:10:00 · 832 阅读 · 0 评论 -
C语言变量声明内存分配
一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 程序运行时由编译器自动分配,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。程序结束时由编译器自动释放。2、堆区(heap) — 在内存开辟另一块存储区域。一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。3、全局区(静态区)(static)—编译器编译时即分配内存。全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态转载 2010-11-18 00:56:00 · 818 阅读 · 0 评论 -
C运算符优先级
由上至下,优先级依次递减结合性: ---> 表示自左向右(反之亦然)() [] -> . (--->)! ~ ++ -- - (type) * & sizeof ()+ - (--->)>原创 2011-01-17 12:19:00 · 865 阅读 · 0 评论 -
详解const int *p,int*const p,int const *p
1 从const int i 说起 有了const修饰的ic 我们不称它为变量,而称符号常量,代表着20这个数。这就是const 的作用。ic是不能在它处重新赋新值了。 认识了const 作用之后,另外,我们还要知道格式的写法。有两种:const int ic=20;与int const ic=20;。它们是完全相同的。这一点我们是要清楚。总之,你务必要记住const 与int哪个写前都不影响语义。有了这个概念后,我们来看这两个家伙:const int * pi与int const * p转载 2011-01-21 11:06:00 · 810 阅读 · 0 评论 -
linux 内核链表
http://isis.poly.edu/kulesh/stuff/src/klist/转载 2014-01-02 15:39:45 · 629 阅读 · 0 评论