C/C++
allenltiverson
CSDN软件与网页收藏居然不同步…
展开
-
随机数(转)
多样化是生活的一大乐趣,而计算机却似乎完全是可预见的,因此显得较死板,随机数为计算机程序注入了不可预见的东西,因此可以让计算机更好地模拟外部事件。比如游戏,图形显示,计算机仿真,随机数增加了许多的乐趣,而且当计算机程序重复运行时,不会表现出跟它模仿的自然系统有什么不同之处。我们打算设计一个class Random, 它的成员函数生成和返回各种各样的随机数。将要生成随机数的思想是,从一个数出发,对它原创 2013-11-18 20:24:47 · 813 阅读 · 0 评论 -
堆栈的区别
堆和栈的区别 一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap)— 由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表。原创 2013-11-18 20:23:55 · 576 阅读 · 0 评论 -
回调函数CALLBACK
回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。 1 函数指针 回调在C语言中是通过函数指针来实现的,通过将回调函数的地址传给被调函数从而实现回调。因此,要实现回调,必须首原创 2013-11-18 20:26:05 · 834 阅读 · 0 评论 -
VC++ DEGUG/RELEASE两选项主要有哪些区别 .(转)
一、Debug 和 Release 编译方式的本质区别 Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程 序。Release 称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度 上都是最优的,以便用户很好地使用。 Debug 和 Release 的真正秘密,在于一组编译选项。下面列出了分别针对二者的选项 (当然除此之外还有其原创 2013-11-18 20:25:14 · 689 阅读 · 0 评论 -
_stdcall和_cdecl
__cdecl 是C DECLaration的缩写(declaration,声明),表示C语言默认的函数调用方法:所有参数从右到左依次入栈,这些参数由调用者清除,称为手动清栈。被调用函数不会要求调用者传递多少参数,调用者传递过多或者过少的参数,甚至完全不同的参数都不会产生编译阶段的错误。 _stdcall 是StandardCall的缩写,是C++的标准调用方式:所有参数从右到左依次入栈,如果原创 2013-11-18 20:24:24 · 626 阅读 · 0 评论 -
编程规范
1禁止在头文件中定义变量 2禁止在extern “C”中包含头文件,否则会导致extern “C”嵌套,嵌套太多导致编译错误 3每个模块提供多个.c文件,在同一目录下,目录名为模块名,并提供一个.h文件 4.如果一个模块包含多个模块,则每个模块提供一个.h文件名为子模块名 5.头文件排版方式:1.按字母升序 2.将不稳定(常修改)原创 2013-11-18 20:23:27 · 1096 阅读 · 0 评论 -
常用cmd命令
appwiz.cpl 添加\卸载程序arp -a 显示所有连接了的计算机IP和MACarp -s 192.168.10.59 00-50-ff-6c-08-75 ip和MAC绑定arp -d 127.0.0.1 解除绑定assoc 显示文件管理at 11:51 ipconfig计划运行任务attrib +r 文件名 将文件设置为只读,-r去掉只读(s系统,h隐藏,a存档) calc 计算器ca原创 2013-11-18 20:24:58 · 678 阅读 · 0 评论 -
结构体对齐的具体含义(#pragma pack)(转) .
朋友帖了如下一段代码: #pragma pack(4) class TestB { public: int aa; char a; short b; char c; }; int nSize = sizeof(TestB); 这里nSize结果为12,在预料之中。 现在去掉第一个成员变量为如下代码: #pragma pack(4) class Tes原创 2013-11-18 20:25:06 · 707 阅读 · 0 评论 -
c++实现双链表
// Double_List.cpp : Defines the entry point for the console application.// #include "stdafx.h"#include #include #include "conio.h"using namespace std; struct _DOUBLE_LINK_NODE //定义一个双链表结构{ char原创 2013-11-18 20:23:53 · 686 阅读 · 0 评论 -
堆和栈的区别(转载)
首先,我们举一个例子: void f() { int* p=new int[5]; } 这条短短的一句话就包含了堆与栈,看到new,我们首先就应该想到,我们分配了一块堆内存,那么指针p呢?他分配的是一块栈内存,所以这句话的意思就是:在栈内存中存放了一个指向一块堆内存的指针p。在程序会先确定在堆中分配内存的大小,然后调用operator new分配内存,然后返回这块内存的首地址,放入栈原创 2013-11-18 20:26:03 · 681 阅读 · 0 评论 -
C++虚函数与虚函数表(转)
C++虚函数与虚函数表 多态性可分为两类:静态多态和动态多态。函数重载和运算符重载实现的多态属于静态多态,动态多态性是通过虚函数实现的。 每个含有虚函数的类有一张虚函数表(vtbl),表中每一项是一个虚函数的地址, 也就是说,虚函数表的每一项是一个虚函数的指针。 没有虚函数的C++类,是不会有虚函数表的。 两张图: 简单例子:转载 2013-12-18 21:03:40 · 859 阅读 · 0 评论