![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Programing
文章平均质量分 68
twnming
这个作者很懒,什么都没留下…
展开
-
堆和栈的区别
堆和栈的区别一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。3、全局区(静态区)(static转载 2008-04-21 12:08:00 · 304 阅读 · 0 评论 -
Cyrix EMMX Instructions
Cyrix EMMX Instructions — OverviewIn 1997, Cyrix extended Intels MMX Instruction set with their own variation, called EMMX. This extension introduced Implied Destination registers, allowing som转载 2008-12-03 13:23:00 · 2007 阅读 · 0 评论 -
3DNow! Instruction Set
3DNow! — An Overview3DNow! was AMDs logical extension to Intels MMX. While MMX only provided parallel integer operations, 3DNow! addressed the need for parallel floating point operation. It wa转载 2008-12-03 13:24:00 · 651 阅读 · 0 评论 -
Streaming SIMD Extensions 2 (SSE2)
SSE 2 — An OverviewSSE2 was first introduced on the Intel Pentium 4, and are also known sometimes as "Willamette" instructions. These instructions are very similar to the SSE instructions in str转载 2008-12-03 13:27:00 · 1038 阅读 · 0 评论 -
Streaming SIMD Extensions 3 (SSE3)
SSE3 — An OverviewSSE3 was introduced by Intel in early 2004 with their Prescott revision of the Pentium 4 CPU. SSE3 adds only 13 new instructions, but allows for new features such as horizontal转载 2008-12-03 13:28:00 · 609 阅读 · 0 评论 -
Supplemental Streaming SIMD Extensions 3 (SSSE3)
SSSE3 — An IntroductionWith Intels Core 2 architecture, a few new instructiosn were added to the SSE3 collection. These were mistakenly called SSE4 at times while under development, and are als转载 2008-12-03 13:28:00 · 716 阅读 · 0 评论 -
Optimization of memory allocations
IntroductionSTL introduced mechanism called "allocator" used to create additional level of abstraction for STL containers which encapsulates information about memory model. This abstraction is infre转载 2008-12-03 14:22:00 · 590 阅读 · 0 评论 -
SIMD — Introduction
SIMD (Single Instruction, Multiple Data). SIMD describes any extension to microprocessors that allow it to operate on data in parallel. Some common SIMD extensions are MMX, 3DNow!, SSE, and AltiVec (转载 2008-12-03 13:16:00 · 425 阅读 · 0 评论 -
3DNow! — Extended Instruction Set
3DNow! — ExtensionsWhen AMD released their Athlon processor in 1999, they also took the liberty to extend their 3DNow! instruction set with a few new instructions. They basically provide a few m转载 2008-12-03 13:24:00 · 399 阅读 · 0 评论 -
Streaming SIMD Extensions (SSE)
SSE — An OverviewSSE is a newer SIMD extension to the Intel Pentium III and AMD AthlonXP microprocessors. Unlike MMX and 3DNow! extensions, which occupy the same register space as the normal FPU转载 2008-12-03 13:26:00 · 1580 阅读 · 0 评论 -
SSE2 Optimization
IntroductionIntel Pentium 4 processor includes support for additional set of single instruction multiple data (SIMD) commands. What is SIMD? Its a way of getting your CPU to do more work with less转载 2008-12-03 14:25:00 · 1032 阅读 · 0 评论 -
VC 界面开发 常见的问题
(3) 如何在程序中获得其他程序的 图标?两种方法:(1) SDK函数 SHGetFileInfo 或使用 ExtractIcon获得图标资源的 handle,(2) SDK函数 SHGetFileInfo 获得有关文件的很多信息,如大小图标,属性, 类型等. void CSampleView:OnDraw(CDC * pDC){if( :: SHGetFileInfo(_T("c://pwi转载 2008-12-05 15:58:00 · 903 阅读 · 0 评论 -
使用MAP文件快速定位程序崩溃代码行
作为程序员,平时最担心见到的事情就是程序发生了崩溃,无论是指针越界还是非法操作,都将给我们的应用系统造成巨大的损失。但在一个大型系统的测试过程中,初期出现程序崩溃似乎成了不可避免的事。其实测试中出现程序崩溃并不可怕,反而是测试的成功。我们更为关心的是程序中的哪一行导致了系统崩溃,这样我们才能有针对性的进行改正。 在VC中,我们可以利用出现程序崩溃时VC的自动跳转,定位到出错代码行。但在大量的转载 2010-03-20 11:10:00 · 473 阅读 · 0 评论 -
C代码优化方案
C代码优化方案 华中科技大学计算机学院 姓名: 王全明 QQ: 375288012 Email: quanming1119@163.com 目录目录__ 2 C代码优化方案__ 4 1、选择合适的算法和数据结构__ 4 2、使用尽量小的数据类型__ 5 3、减少运算的强度转载 2010-04-10 11:38:00 · 584 阅读 · 0 评论 -
Visual Studio 调试小技巧(2)-从查看窗口得到更多信息
<br />在使用Visual Studio开发调试程序时,我们经常需要打开查看窗口(Watch)来分析变量。有时在查看窗口显示的内容不是很直观。为了能从查看窗口的变量中得到更多的信息,我们需要一些小的技巧。下面是几个例子。<br />1.Windows消息<br />在开发调试界面程序时,我们经常需要查看消息的内容。当在查看窗口中,仅仅只显示出消息对应的整数值,我们并不能直观地知道究竟是什么消息。比如:<br /> <br /><br /><br />为了能让查看窗口显示出消息内容,我们只需要在变量名添加转载 2010-06-12 20:37:00 · 520 阅读 · 0 评论 -
AMD MMX Extensions
MMX Extensions OverviewWith the release of the Athlon in 1999, AMD extended the standard MMX instruction set with some new instructions. These instructions provide some enhanced conversion and s转载 2008-12-03 13:22:00 · 556 阅读 · 0 评论 -
MultiMedia eXtensions
MMX — An OverviewMMX was the first set of SIMD extensions applied to Intels 80x86 instruction set. It was introduced in 1997. MMX introduces a number of new instructions that operate on single转载 2008-12-03 13:21:00 · 509 阅读 · 0 评论 -
Using CPUID for SIMD Detection
CPUIDcpuid is an instruction added to Intel Pentiums (and some later 80486s) that enables programmers to determine what kind of features the current CPU supports, who made it, various extension转载 2008-12-03 13:18:00 · 557 阅读 · 0 评论 -
如何调试MFC中的内存泄漏
首先,应该是MFC报告我们发现内存泄漏。注意:要多运行几次,以确定输出的内容不变,特别是{}之间的数值,不能变,否则下面的方法就不好用了。 我们来看看: F:/CodeSample/Test/TestPipe/LeakTest/MainFrm.cpp(54) : {86} normal block at 0x00422E80, 10 bytes long. Data:转载 2008-04-21 12:54:00 · 359 阅读 · 0 评论 -
总结windows下堆溢出的三种利用方式
main (int argc, char *argv[]) { char *buf1, *buf2; char s[] = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/x03/x00/x05/x00/x00/x01/x08/x00/x11/x11/x11/x11/x21/x21/x21/x21";buf1 = (char*)malloc (32); /* 分配两块内存转载 2008-04-21 12:49:00 · 452 阅读 · 0 评论 -
开发人员不容错过的13篇的技术经典文章
Linux 内核剖析庞大复杂的 Linux 内核采用了子系统和分层的概念,因此结构非常清晰。本文将带您探索 Linux 内核的总体结构,并学习一些主要的子系统和核心接口。Java SE 6 新特性:HTTP 增强本文将介绍 Java SE 6 中围绕着 HTTP 协议出现的很多实用的新特性:NTLM 认证的支持;提供了一个轻量级的 HTTP 服务器;提供了较为完善的 HTTP Cookie 管转载 2008-04-21 12:54:00 · 398 阅读 · 0 评论 -
vc编译设置
大家可能一直在用VC开发软件,但是对于这个编译器却未必很了解。原因是多方面的。大多数情况下,我们只停留在“使用”它,而不会想去“了解”它。因为它只是一个工具,我们宁可把更多的精力放在C++语言和软件设计上。我们习惯于这样一种“模式”:建立一个项目,然后写代码,然后编译,反反复复调试。但是,所谓:“公欲善其事,必先利其器”。如果我们精于VC开发环境,我们是不是能够做得更加游刃有余呢? 闲话少转载 2008-04-21 12:12:00 · 547 阅读 · 0 评论 -
学习---解析#pragma指令
在所有的预处理指令中,#Pragma 指令可能是最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作。#pragma指令对每个编译器给出了一个方法,在保持与C和C++语言完全兼容的情况下,给出主机或操作系统专有的特征。依据定义,编译指示是机器或操作系统专有的,且对于每个编译器都是不同的。其格式一般为: #Pragma Para其中Para 为参数,下面来看一些常用的参数。(1)转载 2008-04-21 11:58:00 · 338 阅读 · 0 评论 -
VC UNICODE设置
1、新建一个工程;2、选择“Build->Configurations”菜单3、点击“Add”按钮,添加“Unicode Debug”-拷贝“win32 Debug”配置, 添加“Unicode Release”拷贝“win32 Release”配置 ,然后点击“OK” 4、选择“Project->Setting”菜单5、切换到“General ”TAB页6、修改“Win32 Unicode De转载 2008-04-21 12:47:00 · 449 阅读 · 0 评论 -
内存池(version1.1)
再参考了《Modern C++ Design》的FixedAllocator的设计,并且优化了一下算法,虽然最坏时间复杂度还是O(N)的,但是在通常情况下,new/delete的使用已经获得了比较好的性能了。Chunk.h和version1.0的差不多,只是去掉了析构函数,让Chunk直接被FixedAlloctor操作Chunk.h#ifndef CHUNK_H#define CHUNK_H转载 2008-04-27 00:16:00 · 403 阅读 · 0 评论 -
boost tokenizer
tokenizer - Break of a string or other character sequence into a series of tokens, from John Bandelatokenizer - 分解字串,提取内容.作者: John Bandela例一:// simple_example_1.cpp#include#include#includeint main转载 2008-05-04 18:52:00 · 1478 阅读 · 0 评论 -
Boost tokenizer examples
// Boost tokenizer examples -------------------------------------------------//// © Copyright John R. Bandela 2001. // Permission to copy, use, modify, sell and distribute this software// i转载 2008-05-04 18:54:00 · 611 阅读 · 0 评论 -
Visual C++ 常用插件
1.Visual Assist(强烈推荐) http://www.wholetomato.com/ VA从5.0一直到现在的VAX,功能越来越强大,除了以前版本中的自动识别各种关键字,系统函数,成员变量,自动给出输入提示,自动更正大小写错误,自动标示错误等等以外,最新的版本中还在 WorkSpace窗口中加入一个VA View,可以更方便的转载 2008-05-22 10:20:00 · 798 阅读 · 0 评论 -
C语言中strtok与strpbrk的区别(转)
一、strpbrk: 调用格式:result = strpbrk(source-string, searching-string) 用途:在源字符串(source-string)中找出最先含有搜索字符串(searching-string)中的任一字符的位置并返回,若找不到则返回空指针。 注意:返回值是指向源字符串的指针,所以在使用返回结果的时候,请确保源字符串的有效性。 举MSDN中的例子: 数据转载 2008-06-28 11:09:00 · 546 阅读 · 0 评论 -
字符串相似度算法( Levenshtein Distance算法)(zz)
昨天论坛看到的,简单写了一下题目: 一个字符串可以通过增加一个字符,删除一个字符,替换一个字符得到另外一个字符串,假设,我们把从字符串A转换成字符串B,前面3种操作所执行的最少次数称为AB相似度如 abc adc 度为 1 ababababa babababab 度为 2 abcd acdb 度为2 字符串相似度算法可以使用 Levenshtein Distance算法(中转载 2008-09-21 10:04:00 · 559 阅读 · 0 评论 -
SSE4 Instruction Set
SSE4 — An OverviewSSE4 was formally announced on September 27th, 2006, and became available in hardware in early 2007 for both Intel and AMD processors. Earlier hints were available, but were in转载 2008-12-03 13:29:00 · 1044 阅读 · 0 评论 -
AltiVec Instruction Set
AltiVec — An OverviewAltiVec is a SIMD instruction set developed by Apple around 1998. It is a floating-point instruction set used in PowerPC microprocessors. It operates on 32-bit floating poin转载 2008-12-03 13:30:00 · 509 阅读 · 0 评论 -
Visual Studio 调试小技巧(1)-根据字符串内容添加断点
<br /><br /> <br />在用Visual Studio调试程序时,我们经常需要根据数值添加断点。比如需要当i == 2时中断运行,我们可以添加如下的断点:<br /> <br /> <br />有些时候,我们需要根据字符串的内容来添加断点。比如我们在调试如下代码:<br />void CVSDebugTricksDlg::OnBnClickedButton1()<br />{<br /> char* string;<br /> for(int i = 0; i < 5; ++i) {<转载 2010-06-12 20:34:00 · 413 阅读 · 0 评论