
C++
typ2004
这个作者很懒,什么都没留下…
展开
-
assert在debug和release中的有效与失效
linux:在程序里使用assert断言, 通过gcc编译,执行可以执行。assert在程序的release版本中仍然有效(不要与VC中的ASSERT混淆),要使assert失效,只有在包含assert头文件(assert.h)的语句前定义NDEBUG宏或在编译器参数中添加-DNDEBUG参数(gcc 加 -DNDEBUG) ,就是release版,assert就不会执行。转载 2014-01-25 10:36:33 · 14449 阅读 · 0 评论 -
设置C++崩溃时生成Dump文件,重现程序崩溃位置等信息
Dump 文件是进程的内存镜像 , 可以把程序的执行状态通过调试器保存到dump文件中 ; Dump 文件是用来给驱动程序编写人员调试驱动程序用的 , 这种文件必须用专用工具软件打开 , 比如使用 WinDbg , VisualStudio 打开 ;当我们的程序发布出去之后 , 在客户机上是无法跟踪自己代码的 BUG 的 , 所以 Dump 文件对于我们来说特别有用 ; 我们可以通过 .d原创 2018-01-30 16:53:46 · 2564 阅读 · 0 评论 -
CGI实例--表单GET与POST示例
CGI实例--表单GET与POST示例GET方法:做一个加法运算,需要接收两个参数文件get.c如下:#include #include int main(void){ char *data; char a[10],b[10]; printf("Content-Type:text/html\n\n");转载 2017-03-01 23:12:05 · 1112 阅读 · 0 评论 -
gcc/g++ 如何支持c11 / c++11标准编译
gcc/g++ 如何支持c11 / c++11标准编译linux中的编译环境默认可能不支持C++11语法,如R“(abc)”原始字符串。那么如果一定要编译呢?通过命令man g++可以得知以下方法:g++ -o main main.cpp -std=c++11 (2017.3.1亲测 gcc version 5.4.0 20160609 (U原创 2017-03-01 23:17:09 · 31895 阅读 · 2 评论 -
C++ 解析Json——jsoncpp
C++ 解析Json——jsoncppJSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,和xml类似,本文主要对VS2008中使用Jsoncpp解析json的方法做一下记录。Jsoncpp是个跨平台的开源库,下载地址:http://sourceforge.net/projects/jsoncpp/,我下载的是v0.5.0,压缩包大约104K。转载 2016-04-14 23:57:09 · 1035 阅读 · 0 评论 -
zlib1.dll之64位下载与生成的两种方法
zlib官网提供源码和32位dll,但是无64位直接下载,本文提供了64位的下载与生成方法。方法一(下载):首先到官网下载64位libcurl的:http://curl.haxx.se/download.html,在这里选择Use the curl Download Wizard!,然后按照要求,下载了一个64位版本。下载 http://curl.haxx.se/gknw.ne原创 2016-03-24 23:32:34 · 15555 阅读 · 0 评论 -
写入配置的函数WritePrivateProfileString和读取配置文件的函数GetPrivateProfileInt和GetPrivateProfileString
头文件Windows.h举个例子,配置文件set.cfg内容:[testdata]UserName=600511005Password=112233ResetSeqNumFlag=YInputType=ZClOrdID =9893[section]key=string[Student]Name=jacky函数G原创 2015-08-18 23:04:23 · 6972 阅读 · 0 评论 -
如何输出类的非静态成员函数地址
标签:c 类成员函数 地址 输出 首先我们定义一个类Ctest,类里面包含三个不同形式的成员函数,静态成员函数statFunc()、动态成员函数dynFunc()和虚拟函数virtFunc()。在main函数中我们利用cout标准输出流分别输出这三个函数的地址,程序如下所示:#include #include using namespace std;class Ctest转载 2015-05-22 17:13:06 · 1270 阅读 · 0 评论 -
C++中的static关键字的总结
C++中的static关键字的总结 C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static。前者应用于普通变量和函数,不涉及类;后者主要说明static在类中的作用。1.面向过程设计中的static1.1静态全局变量在全局变量前,加上关键字static,该变量就被定义成为一个静态全局变量。我们先举一个静态全局变量的例子,如下转载 2015-05-10 11:40:25 · 431 阅读 · 0 评论 -
关于零长度的数组——结构体最后一个成员char[0]和char[1]
关于零长度的数组首先,我们要知道,0长度的数组在ISO C和C++的规格说明书中是不允许的。这也就是为什么在VC++2012下编译你会得到一个警告:“arning C4200: 使用了非标准扩展 : 结构/联合中的零大小数组”。那么为什么gcc可以通过而连一个警告都没有?那是因为gcc 为了预先支持C99的这种玩法,所以,让“零长度数组”这种玩法合法了。关于GCC对于这个事的文档在转载 2015-04-15 10:58:32 · 4961 阅读 · 0 评论 -
placement new介绍
new 、operator new 和 placement new 区别(1)new :不能被重载,其行为总是一致的。它先调用operator new分配内存,然后调用构造函数初始化那段内存。new 操作符的执行过程:1. 调用operator new分配内存 ;2. 调用构造函数生成类对象;3. 返回相应指针。(2)operator new:要实现不同的内存分转载 2015-04-15 13:16:17 · 842 阅读 · 0 评论 -
vs2008去除编译路径pdb
vs2008去除编译路径pdb 转载▼编译的项目中会出现程序的路径.pdb的字符串。 项目属性->Configuration Properties->Linker->Debugging Generate Debug Info设置为No,即可。转载 2014-04-02 22:16:47 · 2420 阅读 · 0 评论 -
C++中的static使用
C++的static可以控制存储和可见性。static基本含义:1、静态存储。在静态数据区上创建,而不是每次函数调用时在堆上产生。2、控制连接。static控制名字的可见性(visibility),对于特定的编译单位来说是局部的,所以这个名字在这个文件单元或者类之外是不可见的。1、静态存储用法:函数内的静态变量:可以在函数调用之间保留一个变量的值,由原创 2014-03-09 23:36:09 · 720 阅读 · 0 评论 -
类的内联函数
程序开发的原则应该是“首先是使它可以工作,然后优化”。 内联函数可以帮助隐藏类的底层实现,并使成员函数和预处理器宏一样有效。 C语言中,宏的效率很高,很多情况下模拟了函数的行为,但是其总是隐藏了很多危险。对于C++中类来说,宏的概念作为内联函数(inline function)来实现,并且内联函数是真正的函数。内联函数能在适当的地方像宏一样展开,不需要函数调用的开销。原创 2014-03-08 16:50:48 · 1427 阅读 · 0 评论 -
关于C++虚函数与普通函数的编译与调用机制
本文转自:http://www.cnblogs.com/huhuuu/p/3463109.html----------------------------------------------------------------------------------------引出:写个类A,声明类A指针指向NULL,调用类A的方法会有什么后果,编译通过吗,运行会通过吗?(在VS200转载 2014-03-04 23:33:11 · 1850 阅读 · 0 评论 -
windows中生产者与消费者的同步机制
暂时放一例子如下:class CUploadSongRoad{ HANDLE buffer_full; HANDLE buffer_empty; int m_nRoadNum; CRITICAL_SECTION sc, oc; int *buffer; int buffer_p; int buffer_c;原创 2014-03-05 13:00:50 · 931 阅读 · 0 评论 -
派生类构造函数和析构函数的执行顺序
派生类继承了基类的成员,实现了代码的重复利用,但基类的构造函数和析构函数不能被继承。如果在派生类中需要对新增加的成员进行初始化,则需要加入派生类的构造函数。同样派生类也需要添加析构函数来实现一些结束工作。 当创建对象时,编译系统会自动调用构造函数。当撤销对象时,编译系统会自动调用析构函数。当创建派生类的对象时,首先执行基类的构造函数,然后执行派生类的构造函数。当撤销对象时,则先执行转载 2014-03-05 12:47:18 · 1704 阅读 · 0 评论 -
C++ 值传递、指针传递、引用传递详解
C++ 值传递、指针传递、引用传递详解最近写了几篇深层次讨论数组和指针的文章,其中提到了“C语言中,所有非数组的形式参数传递均以值传递形式”数组和指针背后——内存角度语义"陷阱"---数组和指针而关于值传递,指针传递,引用传递这几个方面还会存在误区, 所有我觉的有必要在这里也说明一下~下文会通过例子详细说明哦值传递:形参是实参的拷贝,改变形参的值转载 2018-01-25 11:59:28 · 1018 阅读 · 0 评论