![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c/c++
文章平均质量分 71
zhangbin_hunan
这个作者很懒,什么都没留下…
展开
-
struct和typedef struct
struct和typedef struct分三块来讲述: 1 首先://注意在C和C++里不同 在C中定义一个结构体类型要用typedef: typedef struct Student { int a; }Stu; 于是在声明变量的时候就可:Stu stu1;(如果没有typedef就必须用struct Student s转载 2014-03-05 21:56:35 · 551 阅读 · 0 评论 -
MFC自定义消息 消息映射的编写流程
MFC自定义消息 消息映射的编写流程原创 2014-07-06 16:55:45 · 622 阅读 · 0 评论 -
memcpy函数 和 memmove函数 原码
memcpy 和memmove 原型原创 2014-09-21 15:24:31 · 1034 阅读 · 0 评论 -
auto_ptr浅析
很多人听说过标准auto_ptr智能指针机制,但并不是每个人都天天使用它。这真是个遗憾,因为auto_ptr优雅地解决了C++设计和编码中常见的问题,正确地使用它可以生成健壮的代码。本文阐述了如何正确运用auto_ptr来让你的代码更加安全——以及如何避免对auto_ptr危险但常见的误用,这些误用会引发间断性发作、难以诊断的bug。1.为什么称它为“自动”指针?auto_ptr只是众转载 2014-08-26 15:44:36 · 609 阅读 · 0 评论 -
sizeof的使用以及sizeof与strlen的区别
sizeof 是判断数据类型长度符的关键字原创 2014-04-14 13:40:03 · 844 阅读 · 0 评论 -
C++宏定义的优缺点
一、#define的基本用法 #define是C语言中提供的宏定义命令,其主要目的是为程序员在编程时提供一定的方便,并能在一定程度上提高程序的运行效率,但学生在学习时往往不能 理解该命令的本质,总是在此处产生一些困惑,在编程时误用该命令,使得程序的运行与预期的目的不一致,或者在读别人写的程序时,把运行结果理解错误,这对 C语言的学习很不利。1 #define命令剖析转载 2014-09-01 08:50:11 · 3134 阅读 · 0 评论 -
C++#include 采用尖括号和采用引号的区别
如果你还看一些别的C++教程,那么你可能很早就发现了,有些书上的#include命令写作#include ,但有时候又会出现#include "文件名"。你会很疑惑,到底哪个是对的呢?为什么要有这两种不同的写法呢?这两种写法都是正确的写法,但是它们却是有区别的。我们知道C++已经有一些编写好的头文件(比如标准函数库等等),它们存放在VC++的Include文件夹里。当我们使用#includ转载 2014-09-30 15:35:25 · 812 阅读 · 0 评论 -
C++ 根据操作系统版本调用不同的动态链接库
在操作数据库时遇到一个问题:win7 sp1上编译ADO程序,在win7 sp1以下版本不能运行,(Win7系统下需要的动态文件与XP系统的需要的动态链接库不一样。需要根据系统的版本加载动态链接库。)Win7 系统下:需要的动态链接库#import "MSADO15.DLL"rename_namespace("ADOWE") rename("EOF","EndOfFile")原创 2014-12-18 22:07:10 · 2517 阅读 · 0 评论 -
使用批处理文件完成注册信息
在编写软件时, Window系统下的动态链接库需要注册才能使用。比如在Win XP系统下运行ADO程序,需要在当前目录下注册 regtlibv12 msado60_Backcompat_i386.tlb。因为在软件使用时,第一次都需要进行固定的祖册信息操作。这是可以将注册信息放在一个批处理文件中,在第一次运行软件时,运行批处理文件便可以实现信息的注册。将msado15.dll 和msa原创 2014-12-19 09:51:24 · 773 阅读 · 0 评论 -
static的作用(修饰函数、局部变量、全局变量)
static作用(修饰函数、局部变量、全局变量)在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条。(1)先来介绍它的第一条也是最重要的一条:隐藏。当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。为理解这句话,我举例来说明。我们要同时编译两个源文件,一个是a.c,另一个是main.c。下面是a.c的内容char a转载 2014-12-04 16:01:39 · 609 阅读 · 0 评论 -
C程序(进程)的内存布局
C程序(进程)的内存布局#include const int a = 10; //全局常量aint main(void) { const int b = 20; //局部常量b int* pa = (int*)&a; int* pb = (int*)&b; *pa = 30; //可以吗?能成功赋值吗? *pb = 30; //可以吗?能成功赋值吗? r转载 2014-12-04 16:49:09 · 620 阅读 · 0 评论 -
c++ 继承之函数隐藏
基类定义了一个虚函数 ,o原创 2014-06-14 23:21:46 · 710 阅读 · 0 评论 -
realloc 用法
最近在写source code时需要在数组的buffer小时重新申请一块buffer,故找了一些资料,乖乖,竟然原指针还可以“漂移”。。。。。。realloc 原型:extern void *realloc(void *mem_address, unsigned int newsize); 用法:#include 有些编译器需要#include 功能:改变mem_address转载 2014-07-01 16:32:38 · 760 阅读 · 1 评论 -
C++回调函数(callback)的使用
什么是回调函数(callback) 模块A有一个函数foo,它向模块B传递foo的地址,然后在B里面发生某种事件(event)时,通过从A里面传递过来的foo的地址调用foo,通知A发生了什么事情,让A作出相应反应。 那么我们就把foo称为回调函数。 例子: 回调函数是一个很有用,也很重要的概念。当发生某种事件时,系统或其他函数将会自动调用你定义的一段函转载 2014-03-12 22:19:35 · 3342 阅读 · 0 评论 -
回调函数例子
回调函数例子具体过程就不再详细描述了。可与看 我转载的“C++回调函数(callback)的使用”一文直接上例子。//头文件#if !defined(AFX_CALLBACKMFCTESTDLG_H__05A42778_CA7F_4D81_9350_3592155687BB__INCLUDED_)#define AFX_CALLBACKMFCTESTDLG_H__05原创 2014-03-12 22:27:35 · 815 阅读 · 0 评论 -
拷贝构造函数
一. 什么是拷贝构造函数首先对于普通类型的对象来说,它们之间的复制是很简单的,例如:[c-sharp] view plaincopyint a = 100; int b = a; 而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量。下面看一个类对象拷贝的简单例子。转载 2014-04-29 13:43:12 · 595 阅读 · 0 评论 -
指向指针的指针的使用
这篇文章主要是介绍 指向指针的指针 的一种用法上代码(用途:使用一个函数动态申请内存,并赋值。跳出调用函数后输出赋值内容)[cpp] #include #include typedef struct Data { int da; } Data; void fun(Dat原创 2014-03-19 10:09:07 · 662 阅读 · 0 评论 -
堆内存和栈内存 解析
堆:顺序随意栈:先进后出堆和栈的区别一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈2、堆区(heap) — 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵转载 2014-04-15 18:56:42 · 593 阅读 · 0 评论 -
C++与C语言字符串头文件及其对应的操作
1.#include //不可以定义string s;可以用到strcpy等函数using namespace std;#include //可以定义string s;可以用到strcpy等函数using namesapce std;#include //不可以定义string s;可以用到strcpy等函数2.转载 2014-03-22 22:40:20 · 9162 阅读 · 0 评论 -
螺旋队列
螺旋队列问题下面是一个螺旋队列: 73 74 75 76 77 78 79 80 81 72 43 44 45 46 47 48 49 50 71 42 21 22 23 24 25 26 51 70 41 20 7 8转载 2014-05-14 14:46:38 · 758 阅读 · 0 评论 -
const 修饰函数参数,返回值,函数体
看到const 关键字,C++程序员首先想到的可能是const 常量。这可不是良好的条件反射。如果只知道用const 定义常量,那么相当于把火药仅用于制作鞭炮。const 更大的魅力是它可以修饰函数的参数、返回值,甚至函数的定义体。const 是constant 的缩写,“恒定不变”的意思。被const 修饰的东西都受到强制保护,可以预防意外的变动,能提高程序的健壮性。所以很多C++程序设转载 2014-04-29 09:27:16 · 621 阅读 · 0 评论 -
STL set的使用 vector List set map 成员函数erase
STL中的容器按存储方式分为两类,一类是按以数组形式存储的容器(如:vector 、deque);另一类是以不连续的节点形式存储的容器(如:list、set、map)。在使用erase方法来删除元素时,需要注意一些问题。 在使用 list、set 或 map遍历删除某些元素时可以这样使用:正确使用方法1 std::list List; std::l转载 2014-07-01 10:28:38 · 805 阅读 · 0 评论 -
C++读取一整行字符串
大家在学习C++编程时,一般在输入方面都是使用的cin.而cin是使用空白(空格,制表符和换行符)来定字符串的界的。这就导致了对于带有空格的字符串,比如”I Love C++奋斗乐园论坛”只能读入”I”,后面的都无法读入。这时怎么办? 一.对于字符数组:方法一:getline()读入整行数据,它使用回车键输入的换行符来确定输入结尾。调用方法: cin.getli转载 2014-06-30 21:40:06 · 11144 阅读 · 0 评论 -
C++向文件中写入数据
#include#include#includeusing namespace std;int main(){time_t time_now;//定义一个time_t结构的对象time(&time_now);//获取系统当前的日历时间tm timep; //时间结构体 localtime_s(&timep,&time_now);//将日历原创 2014-12-30 18:43:01 · 5694 阅读 · 0 评论