- 博客(15)
- 资源 (14)
- 收藏
- 关注
原创 在类中定义常量
有时我们希望某些常量只在类中有效。由于#define 定义的宏常量是全局的,不能达到目的,于是想当然地觉得应该用const 修饰数据成员来实现。const 数据成员的确是存在的,但其含义却不是我们所期望的。const 数据成员只在某个对象生存期内是常量,而对于整个类而言却是可变的,因为类可以创建多个对象,不同的对象其const 数据成员的值可以不同。第一种方法:枚举常量class A{
2013-03-16 12:32:41 1043
原创 C++中的联合(union)
联合(union)联合(union)是一种特殊的类,一个联合中的数据成员在内存中的存储是互相重叠的。每个数据成员都在相同的内存地址开始。分配给联合的存储区数量是要包含它最大的数据成员所需的内存数。同一时刻只有一个成员可以被赋给一个值。举例:union Test{char cval;int ival;char *sval;double dval;};此
2013-03-06 11:49:19 1060
原创 IO端口和IO空间
关于IO端口和IO空间的关系请看这篇文章:http://www.cnblogs.com/hydah/archive/2012/04/10/2232117.html我们通常所用的读写IO端口一般是从一个端口port写入偏移量offset,然后从port+1端口把这个偏移的值读出来,例如从70/71端口读写CMOS:读CMOS:outp(0x70,offset);value =
2013-03-01 10:03:22 482
原创 判断系统是32位还是64位
在网上找了一下,发现大部分都是用IsWow64Process这个函数,函数原型为:BOOL WINAPI IsWow64Process( __in HANDLE hProcess, __out PBOOL Wow64Process);参数Wow64Process表示是否为64位系统。MSDN上给出了一个例子,摘抄如下:#in
2013-02-28 12:34:37 1949
原创 屏幕坐标和客户区坐标
屏幕坐标:相对于屏幕左上角(0,0)的坐标,这里的屏幕就是我们的输出设备。客户区坐标:相对于窗口客户区左上角(0,0)的坐标。涉及的几个函数:ClientToScreen( ): 把客户区坐标转换为屏幕坐标;ScreenToClient( ):把屏幕坐标转换为窗口坐标;GetWindowRect( ):获取屏幕坐标系下的整个窗口(包含客户区和非客户区)矩形;GetC
2013-02-04 12:07:00 575
原创 指针和引用
指针:1. 指针用于指向对象,它保存的是指向对象的地址。2. 指针在定义时可以不用初始化,但尽量避免使用未初始化的指针。3. 对指针初始化或赋值只能使用以下4种类型:(1) 0值常量表达式;(2)类型匹配的对象地址;(3)另一对象末的下一地址;(4)同类型的另一个有效指针。 int iValue = 0; const int cValue = 0; int
2013-01-23 13:49:22 264
转载 DDK常用函数列表
摘自:http://blog.csdn.net/netanimals/article/details/6826217参见:http://msdn.microsoft.com/en-us/library/ff546644(v=VS.85).aspx(A)ASSERT ASSERTMSG (C)CM_FULL_RESOURCE_DESCRIPTOR CM_PARTIAL
2011-12-06 15:45:18 893
转载 一个简单的操作端口的驱动------完整过程
这个驱动很简单,动态加载,无须更改注册表等。没有inf等东西,应该属于旧式的NT式驱动。驱动:通过 _inp 和 _outp / READ_PORT_UCHAR 和 WRITE_PORT_UCHAR 访问PC自带的speeker cmos的端口应用程序:通过DeviceIoControl访问驱动参考:http://blog.csdn.net/bhw98/archiv
2011-12-06 15:32:35 2387
转载 Linux下挂载U盘
摘自:http://tieba.baidu.com/f?kz=363265751 挂u盘之前,运行命令cat /proc/partitions,看看现在系统中有哪些分区。插上u盘以后,再次运行上述命令,看看多出来什么分区(通常是sda1,PS由于偶是在虚拟机下装的,所以是sdb1).1、插入U盘 2、输入 fdisk -l /dev/sda 查看输出结果,比如我的是这样的:
2011-12-06 15:13:49 291
转载 getopt与optarg
转 自http://www.diybl.com/course/3_program/c++/cppjs/20091031/180765.htmlgetopt被用来解析命令行选项参数。就不用自己写东东处理argv了。 #include extern char *optarg; //选项的参数指针extern int optind, //下一次调用getopt的时,从optind存
2011-12-06 15:06:08 1170
原创 Windows下遍历PCI设备
一个系统上最多有256个PCI总线,每个总线最多有32个设备,每个设备最多有8个功能,每个功能最多有256字节的配置地址空间,所以总的配置地址空间是16M(256字节 ×8 ×32 ×256)。 一个PCI设备可由bus号、device号、function号唯一确定。这三个参数构成PCI设备标识符。 15141312
2011-08-18 19:18:19 6729
原创 简单计算器
// 简单计算器——能实现加减乘除并显示计算过程#include #include int main(){ char ch,temp; int sum=0; char f=0; while(1) { ch=getche(); if(ch>='0' && ch { ch=ch-48; if(f) {
2011-07-25 21:27:25 499
转载 C语言库函数——isdigit
isdigit isdigit 原型:extern int isdigit(char c); 用法:#include ctype.h> 功能:判断字符c是否为数字 说明:当c为数字0-9时,返回非零值,否则返回零。 附加说明 此为宏定义,非真正函数。 举例: // isdigit.c #include #include main() {
2011-06-14 21:38:00 1434
转载 C语言库函数——atoi
atoi C语言库函数名: atoi 功 能: 把字符串转换成整型数. 名字来源:array to integer 的缩写. 原型: int atoi(const char *nptr); 函数说明: 参数nptr字符串,如果第一个非空格字符不存在或者不是数字也不是正负号则返回零,否则开始做类型转换,之后检测到非数字或结束符 /0 时停止转换,返回整型数。 头文
2011-06-14 21:26:00 612
原创 在for语句里实现1到99单数总和
用最短的程序和执行时间在for语句里实现1到99单数求和: #includeint main(){int i=1,sum=0;for(;igetchar();return 0;}
2011-06-13 22:27:00 2601
ToYcon_V0.6
2012-09-05
Winio2.0(windows下绕过保护机制访问底层的工具)
2011-08-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人