自用
文章平均质量分 90
Gumo_x
这个作者很懒,什么都没留下…
展开
-
windows驱动开发学习笔记一双向链表LIST_ENTRY
LIST_ENTRY定义如下:typedef struct _LIST_ENTRY { struct _LIST_ENTRY *Flink; // 指向下一个节点 struct _LIST_ENTRY *Blink; // 指向前一个节点} LIST_ENTRY, *PLIST_ENTRY;由LIST_ENTRY的定义可以知道这是一个双向链表结构,通常原创 2016-07-21 19:09:35 · 1530 阅读 · 0 评论 -
windows驱动开发学习笔记二应用层与内核通信
本次实现一个应用与驱动通信的功能,具体信息如下: (1)应用自定义两个字符串缓冲区用以发送和接收数据; (2)驱动生成一个控制设备,自定义一个链表结构用以保存从应用接收到的数据; (3)应用向驱动发送一个字符串,驱动接收到字符串并将其存入链表中; (4)应用请求接收驱动中的字符串,驱动从链表中取出一个节点,将数据传给应用,应用将其打印出来。 因为应用层的代码比较简单,先从应用层开始讲起,原创 2016-07-22 15:30:34 · 1370 阅读 · 1 评论 -
关于scanf_s的学习
最近在学习中发现了一个据说较scanf更安全的函数---scanf_s。scanf在读取时不检查边界,所以可能造成内存访问越界,举例说明:char buf[16];scanf("%s",buf);当输入了16个以上的字符时,多接收的字符会被写入其他内存空间中,从而产生问题。而使用scanf_s后,这种问题可以得到解决:char buf[16];scanf_s("%s"原创 2016-07-20 17:01:30 · 4317 阅读 · 5 评论 -
简单算法学习笔记一
(一)枚举 下列乘法算式中,每个汉字代表一个0~9的数字,不同的汉子代表不同的数字,试编程确定是的整个算式成立的数字组合,如有多种情况,请给出所有可能的答案。 赛软件 * 比赛 = 软件比拼#include <stdio.h>/** **赛 = a 软 = b **件 = c 比 = d **拼 = e **因为不同的汉子代表不同的数字,所以所有可能的组合有10原创 2016-07-30 17:24:30 · 449 阅读 · 2 评论 -
简单算法学习笔记二
(一)冒泡排序(升序) 对n个整数进行排序。 算法思想: (1)从下标为0的元素开始,对两两相邻的元素进行比较,如果前一个元素大于后一个元素,则交换这两个元素的值,在n-1次比较后,这组整数中最大的元素就被移动到最后(下标为n-1); (2)对下标为0到下标为n-2的n-1个元素重复(1)中的比较和交换过程,最终第二大的元素被移动到下标为n-2的单元; (3)对剩下的n-2个数重复上面的比原创 2016-08-02 18:02:16 · 399 阅读 · 0 评论 -
零碎的学习笔记一
记在这里以后用(1)命令行虚拟一个盘符subst G: C:\temp 将C盘下temp目录虚拟为G盘subst /d G: 移除虚拟的G盘(但不会删除里面的文件,C盘中temp文件夹下的文件还在)原创 2016-07-29 17:27:05 · 369 阅读 · 0 评论 -
零碎的学习笔记二
(1)头文件保护符 在程序中经常会包含多个头文件,有时也会有自己编写的头文件,而自己写的头文件有时因为需要又会包含其他头文件,这样,在一个包含这些头文件的程序中,同一个头文件可能会被包含多次,有可能会造成程序不能正常工作。因此有了头文件保护符的概念。 头文件保护符依赖于预处理变量,预处理变量有两种状态:已定义和未定义。#define指令把一个名字设定为预处理变量; #ifdef当且仅当变量已定原创 2016-08-18 16:43:17 · 400 阅读 · 0 评论 -
处理string对象中的字符
标准库类型string表示可变长的字符序列,使用string类型必须包含string头文件,string定义在命名空间std中。 (1)定义和初始化string对象:string s1; //默认初始化s1是一个空串string s2(s1); //s2是s1的副本string s3 = s1; //等价于s3(s1),s3是s1的副原创 2016-08-19 17:30:38 · 491 阅读 · 0 评论