- 博客(35)
- 资源 (5)
- 收藏
- 关注
原创 DX11学习的一些资料
DX的资源:1. DX Sample 文件在DX的安装目录下,其中目录D:\Software\dev\Samples\SampleBrowser 下面的功能也不错。2. DX功能支持查看器搜索DirectX Caps Viewer3. DX 诊断工具搜索 DxDiag4. DX错误查找工具DirectX Error Lookup...
2020-10-24 22:03:43
259
原创 聊聊模板
看下面的例子,void printEx(){}template <typename T, typename... Types>void printEx(const T& firstArg, const Types... args) { std::cout << firstArg << std::endl; printEx(args...);}void testFun { printEx(1, "abc", 100, 1.5
2020-10-18 04:19:57
202
原创 聊聊Lamda
最近开始看C++11的新语法,觉得有些知识还是要更进一步认识下,下面仅就这段简短的代码来聊聊Lamda,为啥在这段代码里面 lamda中的x 是 10 而不是 15呢?int testFun() { int x = 10; int y = 20; int ret = 0; auto f = [x, &y] ()-> int { y++; return x+y; }; x = 15; y = 100;.
2020-10-11 21:00:08
206
原创 一致性初始化和初始列
1. 大括号初始化int a = {5};int a{5};int *q{};注意点:不能出现精度降级的情况,例如下面的用法是错误的int a{5.0}int a = {5.0}上述的例子中,将浮点类型降级成了整形,会导致编译报错2. 自定义初始列class MyTest {public: MyTest(initializer_list<int> init) { std::cout << "MyTest(initiali
2020-10-08 16:57:03
187
原创 聊聊go语言的多返回值的实现
go语言具有多返回值的能力,我们本文就来探究其实现方法。首先我们弄一个测试程序如下:func doOperator(x, y int) (addRet int, subRet int) { return x + y, x - y}func main() { var x = 10 var y = 3 var a, b = doOperator(x, y) if a > b { fmt.Printf("abc") return }}我们以非优化的方式进行编译
2020-05-31 18:14:55
1087
原创 Linux内核学习(3)——socket的创建
通过前面的系统调用,我们就进入socket的内核处理过程。本节来看socket的创建SYSCALL_DEFINE3(socket, int, family, int, type, int, protocol){ int retval; struct socket *sock; int flags; /* Check the SOCK_* constants for consi...
2019-10-03 19:27:15
380
原创 Linux内核学习(2)——系统调用
kernel中的系统调用入口:linux/arch/arm/kernel/calls.S被文件linux/arch/arm/kernel/entry-common.S调用/* * Let's declare a second syscall table for old ABI binaries * using the compatibility syscall entries....
2019-10-03 17:20:17
272
原创 Linux内核学习(1)——搭建环境
本文记录下搭建qemu的arm linux 环境,虚拟机是 ubuntu 14.04.kernel: 4.4.1busybox:1.25.1qemu:sudo apt-get install qemu,实际的版本如下:jeyawn@ubuntu:~/Work$ qemu-system-arm --versionQEMU emulator version 2.0.0 (Debian...
2019-10-03 15:00:51
231
原创 实战java高并发程序设计学习(2)
chapt3 JDK并发包1. 重入锁 (ReentrantLock)优点:lockInterruptibly可以被中断,而且支持本线程反复加锁,注意点是加锁与释放锁必须配对例子:验证中断的情况,t1线程占据锁并且不释放,t2由此被挂起,无法继续执行,那么可以通过中断的方式,使得t2继续执行(代价是t2部分业务代码无法继续执行)public class LockTest { ...
2019-05-03 10:02:09
250
原创 实战java高并发程序设计学习(1)
chapt2 java并行程序基础读完原书第二章,记录下一些要点1. 关于线程中断public class InterruptThread implements Runnable{ @Override public void run() { Thread.currentThread().setName("jeyawn thread"); ...
2019-05-01 17:15:43
182
原创 一个疏忽导致的问题
最近在看 Unix 环境高级编程 这本书,书上列举了一个进程 racing 的例子,由于打印字符串太短,所以看不到整体的效果,于是自己写了一个测试程序,大家看看这个程序输出的结果是什么?#include "apue.h"static void charatatime(char *);char buf_1[4096];char buf_2[4096];intmain(void
2011-12-24 11:07:59
361
原创 2009.10.2
今天一下子让我经历了很多的事情,从十几年前的往事,到今天的一切,我的心情怎么也平静不了。不敢继续想了。虽然本博客是想写一些技术的东西,还是在此提下这个事情,慰劝自己,有些事情最好实际一点。
2009-10-02 19:45:00
362
原创 vc上使用ucosii
因为工作关系,最近的开发平台变成了ucos上面,所以临时突击了一下这方面的内容,看了ucosii,发现上面的代码是在bc上面编译的,鉴于本人是vc的信徒,钟爱vc,所以特别将它移植到了vc上面,以下是我做的一些修改, 1,去网站下载一份支持vc的ucos的代码,网址为http://www.micrium.com/windows/index.html#rtosports 2,去下载一
2009-01-27 18:59:00
1991
原创 公告
2008马上就要走过,在这个令人难以形容的年份里面,有过各种滋味,鉴于目前赋闲,且在看于渊先生的《自己动手写操作系统》,所以本博主在后续的日子中将会对该方面相关资料作一些探讨。
2008-12-31 17:49:00
451
原创 MTK窗口历史管理
这一阶段一直在做MTK平台的开发,所以今天就准备了一些MTK的东西,与大家分享,今天主要的内容是MTK的窗口历史管理。MTK的窗口是由函数U8 EntryNewScreen(U16 newscrnID, FuncPtr newExitHandler, FuncPtr newEntryHandler, void *flag)来实现的。该函数中参数的意义如下:newscrID:新窗口的ID,每个窗口都
2008-12-07 13:07:00
1247
2
原创 如何估计代码的效率
前段时间,我们的leader交给了一个任务,是去估计mtk6225各种指令的效率。接到这个任务之后,我大概对这些指令做了规划,就去写代码了。写完了代码,就去测试。我的测试代码大概如下以测试加法效率的时候,采用了以下语句:int i, j, m;for(i=0;i{ j = k+m;}结果测试的结果明显有问题,例如浮点的乘法居然跟赋值耗时一样,这是明显的错误嘛。所以我就去看了下汇编代码,才
2008-07-20 12:33:00
761
1
原创 串指令
今天学习了汇编语言的串操作指令,大概做以下笔记,movs 串传送cmps 串比较scas 串扫描lods 从串取stos 存入串与它们一起搭配的指令是rep 重复repne/repnz 不相等/不为零与rep配合的movs,stos,lods操作start:if(CX==0) exit;CX--;execute str instruction;goto start;如果str in
2008-07-15 01:18:00
747
原创 跳转表
今天看了算法,觉得里面的跳转表还是挺有意思的,所以就把代码弄了下来,跳转表也是一种链表,但是它不象普通的链表那样仅仅有一个链接构。它有多级。级数的最大值可以由以下log(1/p, N)-1,第一次看这个的时候,我几乎被它吓到了,要是插入一个数据得多麻烦啊,不是吗?得改多个链结构,后来才明白结点的插入采用了概率插入的方式,呵呵,那样就会让每次运行的时候链结构都会不同,但是插入变的简单有趣,确实,有时
2008-07-13 23:40:00
1933
原创 humble number的代码分析
前段时间在blog上写了一个humble number的代码,没有想到有热心读者坚持希望知道这个算法的实现原理,本着share的原则,今天我的作品中就来探讨一下关于这个算法是如何实现的。我们前面分析过,最笨的一种humble number的计算方法无非是穷举数据,那么它的复杂度是很难想象的。(要知道第5842个数据已经到达20亿了)。我们下面介绍的方法是通过对种子元素(因数)快速的产生humble
2008-05-31 22:24:00
1831
4
原创 一个humble numbers 的算法的解答
今天,我们同事不知道从哪儿弄来一道有意思的题目,我做了觉得很有意思,而且这个算法运行速度也还过得去,个人觉得对算法的实践也相当有帮助,所以就写了以下内容来分享一下。题目: 寻找这样一种数列,它仅仅能被2,3,5,7整除。请输出这样的数列。问题的分析,一种是对每个数字进行遍历,这是一种很直觉的方法,从算法复杂度考虑,它耗费的时间必然是很大的。后来,我们想到问题可以转化为对2,3,5,7这些数
2008-05-21 23:34:00
840
1
原创 一道简单的acm题目
Calculate a + b InputThe input will consist of a series of pairs of integers a and b,separated by a space, one pair of integers per line. OutputFor each pair of input integers a and b you should outpu
2008-05-20 22:24:00
615
原创 [自己动手写操作系统]的学习实践【第三章】
因为第二章主要是讲系统的一些配置,所以我们在这里就不准备怎么费多少笔墨描述了,第三章 保护模式第一节 认识保护模式本章我们要学习计算机如何由实模式转入保护模式。实模式向保护模式的转变需要更改一系列的参数。实质是通过一个数据结构来使得16位寄存器访问了4GB的空间。我们下面的程序就显示了这个例子。我们对此的分析将以旁注的方式表现。; ========================
2008-05-03 18:03:00
829
2
原创 [自己动手写操作系统]的学习实践【第一章】
最近开始看这本书了,所以就写下自己看的随笔。希望大家共同探讨,对错误进行指正。再次特别感谢一下书的作者于渊大哥,算实我看过的很好的作品了。希望有兴趣的朋友好好研读,呵呵。第一章 马上动手写一个最小的“操作系统”本章讲述了一个简单非依赖操作系统的程序boot.asm,该代码如下:代码1-1 /chapter1/a/boot.asm---------------------------------
2008-05-03 17:45:00
549
原创 自己的管帐软件
前段时间,觉得自己花钱出问题了,没有节制,没有规划,所以就去下了一个管帐软件,但是那个软件只能记录每天的进出,而我却想记录下每笔钱的去向,所以用了一段时间,就懒得用了,刚好在去年的时候写了一个vc有关access读写的代码,所以就拿来用,重新改装成了我个人版本的管帐软件.代码完成了初步的部分,毕竟能记帐能修改嘛,所以也就告一段落了,当然bug以及未实现的部分还是很多,但是近期工作忙没有时间搞这个玩
2008-03-02 15:39:00
1978
原创 电梯的启示
转眼间已经工作大半年了,今天这个日子,写一篇随笔,算是对逝去的日子做一个怀念,对未来的日子做一个呼唤。我是去年7月份去A公司上班的,10月28日被派去了B公司工作。这里只想对B公司的4个月的生活中很有怀念意义的爬楼梯事件留下自己的切身感悟。这个软件园有23层,我们就在23楼上班,也就是大家常常开玩笑时候调侃的“高层人士”。每天这个软件园发生多的不计其数的事情,最有意思的要数爬楼
2008-02-26 19:45:00
728
原创 利用缓冲区溢出进行漏洞攻击
缓冲区溢出实验本内容为《深入理解计算机系统》P199页第38题的实验分析。实验分析平台为:操作系统 Linux,FD,编译系统为gcc。下载文件bufbomb.c,在gcc上运行以下命令gcc –O2 –c bufbomb.cgcc –O2 –S bufbomb.cgcc –O2 –O bufbomb bufbomb.c可以分别得到二进制文件,反汇编文件以及可执行文件。其实
2008-02-24 19:24:00
1386
1
原创 多叉树的性质
d叉堆基于d叉树,其基本性质如下:(一个结点高度为 0)1) 节点从1开始编号2) 第x层(层满)最右端的节点的编号为:1+k+k^2+...+k^(x-1)=(1-k^x)/(1-k) {注意:等比数列求和} 3) 第i个节点的第1个孩子(如果有)的编号为:(i-1)k+2,最后一个孩子的编号为:ik+1 4) 第i个节点的双亲节点的编号为:取不小于(i-1)/k的最小整数
2008-01-13 12:43:00
1476
原创 文件搜索
前几天的作业,在这里做个备份,同时也记录一点关于文件搜索的方法.作业的内容是编写一个基于对话框的应用程序,可以打开一个文件并浏览该文件下面的所有文件(树型控件)显示.文件的代码如下:1. 利用shell打开系统的文件资源代码BROWSEINFO bi; bi.hwndOwner=NULL; bi.pidlRoot=NULL; bi.pszDisplayName=NULL; bi.
2007-08-12 20:10:00
504
原创 VC绘图总结
VC的绘图可以采用BitBlt函数。我们这里先讲授非动态链接库的方法: HDC DCBak;HBITMAP bit,bitold;bit=(HBITMAP)LoadImage (AfxGetInstanceHandle(), cc, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE|LR_CREATEDIBSECTION
2007-01-20 23:57:00
1528
转载 大学十年@林锐
写此文使我很为难,一是担心读者误以为我轻浮得现在就开始写自传,二是担心朋友们误以为我得了绝症而早早留下遗作。 不论是落俗套还是不落俗套地评价,我在大学十年里都是出类拔萃的好学生。并且一直以来我对朋友们和一些低年级的学生们都有很大的正面影响。这十年是一个从幼稚到成熟的过程,交织着聪明与蠢笨、勤奋与懒散、狂热与怯懦、成功与失败。做对了的事可树立为榜样,做错的事可挂作为警钟。我写下经历与感受,期望以此引
2007-01-19 17:06:00
8299
原创 vc资料连载(一)
在创建MFC项目时, 不使用MFC AppWizard向导, 如果没有设置好项目参数, 就会在编译时产生很多连接错误, 如error LNK2001错误, 典型的错误提示有: libcmtd.lib(crt0.obj) : error LNK2001: unresolved external symbol _main LIBCD.lib(wincrt0.obj) : error LNK2001:
2007-01-19 16:36:00
1186
2
原创 dynamic_cast & static_cast
为了叙述方便,定义类A,B,C,D,E,假设 A 是B,C的基类,B 是D,E的基类。并且都定义了一个指针pa,pb,pc,pd,pe 。1.dynamic_cast:(1)向上转换,比如把pd转换成pb,把pb转换成pa。如pa=dynamic_cast(pb);,pb=dynamic_cast(pd); (2)对VOID的转换,可以让void*的指针连续指向类
2006-12-17 23:50:00
780
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人