![](https://img-blog.csdnimg.cn/20191118131326843.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
基础编程
文章平均质量分 66
Eason.wxd
我是Eason,我喂自己袋盐...
展开
-
汇编学习--7.16--外中断
以前我们讨论的都是CPU对指令的执行。我们知道,CPU在计算机系统中,除了能够执行指令,进行运算以外,还应该能够对外部设备进行控制,接收它们的输入,向它们进行输出。也就是说,CPU除了有运算能力外,还要有I/O(Input/Output,输入/输出)能力。比如,我们按下键盘上的确个键,CPU最终要能够处理这个键。在使用文本编辑器时,按下a键后,我们可以看到屏幕上出现“a”,是CPU将从键盘原创 2012-07-16 14:33:24 · 6094 阅读 · 0 评论 -
汇编学习--7.16--直接定址表
如何有效合理地组织数据,以及相关的编程技术。 描述了单元长度的标号assume cs:codecode segment a:db 1,2,3,4,5,6,7,8 b:dw 0 start: mov si,offset a mov bx, offset b mov cx,8原创 2012-07-16 15:03:18 · 5869 阅读 · 0 评论 -
动态内存篇
从大学毕业,到现在,工作了四个月了。遇到最纠结的问题就是动态分配内存时,产生的数组越界问题。一、C语言动态内存分配 要实现动态内存的分配,除了利用含指针成员的结构体之外,还需利用C语言提供的几个标准库函数。(使用时应包含头文件“alloc.h”或“malloc.h”或“stdlib.h”) 1.malloc函数 函数原型为void *malloc(unsigned原创 2011-12-14 17:17:20 · 5720 阅读 · 0 评论 -
Linux下C编程入门
这里向大家介绍一下在Linux/UNIX 的机器上,进行 C/C++ 编程的一些入门级知识。· 所需具备的背景知识· 开发所需的基本环境· 获得帮助的途径· 通过一个实例了解基本步骤Prerequisite 先决条件:在Linux上编写 C 程序,至少要熟悉以下两方面的基础知识:1. C语言的编程基础,至少要知道一些基本的语法,控制流程等编程常识。对原创 2012-02-01 15:50:15 · 5961 阅读 · 0 评论 -
孙鑫-MFC笔记一--Windows程序内部运行机制
对于一个初学者来说,常常会用到各种库函数,例如printf等等,这些库函数是由你所使用的编译器厂商提供的,在Windows操作系统下,开发的应用程序, 也有这样的库函数,不同的是,这样的库函数,是有windows操作系统提供的。windows操作系统,提供给用户开发window应用程序的这些应用程序编程的接口,就是API函数,API函数库包含帮助文档,使用手册,辅助工具等资源后,就组成了SDK。原创 2012-05-02 08:58:27 · 6077 阅读 · 0 评论 -
孙鑫MFC笔记之十三--多线程编程
程序,进程,线程的区别程序 是计算机指令的集合,它以文件的形式存储在磁盘上。进程 通常被定义一个正在执行的程序实例,是一个程序在其自身的地址空间中的一次执行活动。 我们通常的exe程序是以文件的形式存放在磁盘上的,当我们运行exe时,就生成了一个进程。一个程序可以对应多个进程。 进程是资源申请,调度和独立运行的单位,因此它使用系统的运行资源。而程原创 2012-05-31 17:26:41 · 6313 阅读 · 0 评论 -
孙鑫MFC笔记之十二--网络编程
网络状况:ü多种通信媒介——有线、无线…… ü不同种类的设备——通用、专用…… ü不同的操作系统——Unix、Windows …… ü不同的应用环境——固定、移动…… ü不同业务种类——分时、交互、实时…… ü宝贵的投资和积累——有形、无形…… ü用户业务的延续性——不允许出现大的跌宕起伏。 它们互相交织,形成了非常复杂的系统应用环境 网络异质性问题原创 2012-06-25 12:53:30 · 6899 阅读 · 0 评论 -
孙鑫MFC笔记之十五--进程间通信
方法:n剪贴板 n匿名管道 n命名管道 n邮槽 1.剪贴板 a.创建个ClipBoard的对话框应用程序,加两EditBox和两个Button发送接收。 b.具体代码: 发送端代码:if(OpenClipboard())//打开剪贴板,0,已经被打开。非0,真确打开,但不拥有所有权{ CString str; HANDLE hCl原创 2012-06-29 14:50:25 · 6960 阅读 · 0 评论 -
孙鑫MFC笔记之十六--Active控件
基本概念:容器和服务器程序 容器应用程序时可以嵌入或链接对象的应用程序。Word 就是容器应用程序。服务器应用程序是创建对象并且当对象被双击时,可以被启动的应用程序。Excel 就是服务器应用程序。ActiveX 控件不能独立运行,它必须被嵌入容器应用程序中,和容器应用程序一起运行。 --------------------------------------------原创 2012-07-01 15:28:55 · 9414 阅读 · 0 评论 -
汇编学习--7.17--键盘输入和磁盘读写
使用BIOS进行键盘输入和磁盘读写 大多数有用的程序都需要处理用户的输入,键盘输入是最基本的输入。程序和数据通常需要长期存储,磁盘是最常用的存储设备。BIOS为这两种外设的I/O提供了最基本的中断例程。下面将对它们的应用和相关问题进行学习。 int 9中断例程对键盘输入的处理键盘输入将引发9号中断,BIOS提供了int 9中断例程。CPU在9号中断发生后,执行int 9原创 2012-07-17 09:59:20 · 7731 阅读 · 0 评论 -
数组与指针关系
1原创 2013-09-15 20:25:43 · 8139 阅读 · 0 评论 -
C++查漏补缺之浮点数内存表示
浮点数基础问题http://www.cnblogs.com/xkfz007/archive/2012/02/27/2370357.html为了使有效值和浮点数能够统一,在空间表达上更具有效率,通过调整阶码,使得所有浮点数(任何进制)在小数点前不含有效数字,小数点后第一位非0,这就是浮点数的规格化。在计算机中,所有浮点数都是二进制表示的,因此要先转换成二进制浮点数。整数部分除2取余,原创 2015-03-28 23:04:53 · 5856 阅读 · 0 评论 -
孙鑫-MFC笔记二--MFC框架剖析
MFC,Microsoft Foundation Class,微软基础类库,是微软为了简化程序员的开发工作所开发的一套C++类集合,是一套面向对象的函数库,以类的方式提供给用户使用。 实际上,MFC同样也有WinMain函数,只是这个WinMain函数被微软封装,同时,也封装了每一个窗口都需要的步骤。 在程序编译连接时,WinMain函数成为了程序的一部分。然而,MFC是如何组原创 2012-05-02 16:25:20 · 5964 阅读 · 0 评论 -
孙鑫-MFC笔记四--文本编程
1,创建插入符:void CreateSolidCaret( int nWidth, int nHeight );//创建插入符void CreateCaret( CBitmap* pBitmap );//创建位图插入符void ShowCaret( );//显示插入符void HideCaret( );//隐藏插入符static void PASCAL SetCaretPos原创 2012-05-03 08:49:48 · 6084 阅读 · 0 评论 -
孙鑫-MFC笔记七--文件与注册表
c 语言对文件的操作是通过 FILE 结构体来完成的 1 定义一个文件结构体的指针,获取文件结构体指针并付给 如何打开一个文件 FILE *fopen(const char*filename,const char *mode); //文件名,访问方式 FILE *_wfopen(const wchar_t *filename,const wchar_t原创 2012-05-08 20:49:59 · 6581 阅读 · 0 评论 -
孙鑫MFC笔记之八--文档串行化
1.CArchive在菜单打开保存时的代码CFile file("1.txt",CFile::modeCreate | CFile::modeWrite);CArchive ar(&file,CArchive::store);int i=4;char ch='a';float f=1.3f;CString str("http://www.sunxin.org");ar原创 2012-06-20 08:54:27 · 6220 阅读 · 0 评论 -
孙鑫MFC笔记之十七--HOOK编程
通过安装Hook过程,可以用来屏蔽消息队列中某些消息HHOOK SetWindowsHookEx(int idHook,//钩子过程的类型HOOKPROC lpfn,//钩子过程,如果dwThreadId 为0 ,或者指向一个其他进程创建的线程,则该参数必须指向一个位于动态链接库的钩子过程。否则,指向当前进程相关的代码中定义的钩子过程。HINSTANCE hMod,//动态链接库句原创 2012-07-02 09:36:49 · 9790 阅读 · 0 评论 -
汇编学习--7.13--标志寄存器
标志寄存器CPU内部的寄存器中,有一种特殊的寄存器(对于不同的处理机,个数和结构都可能不同)具有三种作用:1) 用来存储相关指令的某些执行结果;2) 用来为CPU执行相关指令提供行为依据;3) 用来控制CPU的相关工作方式。 这种特殊的寄存器在8086CPU中,被称为标志寄存器。8086CPU的标志寄存器有16位,其中存储的信息通常被称为程序状态字(PSW)。简称flag。原创 2012-07-13 14:52:11 · 5842 阅读 · 0 评论 -
汇编学习--7.10--循环
[bx]:同样表示一个内存单元,他的偏移地址在bx中(可把bx看做一个变量名)。loop指令:循环指令。当执行loop指令的时候,先将(cx)=(cx)-1,然后再判断(cx)的值是否为0,如果不为0,则跳转至“标号:”处执行程序,如果为0则向下继续执行。注意:循环语句之前,在cx中存放循环的次数。 loop指令中的标号所标识地址要在前面。原创 2012-07-10 14:49:31 · 5796 阅读 · 0 评论 -
汇编学习--7.9--寄存器
1. CPU 由运算器 控制器 寄存器等器件构成,这些器件靠内部总线相连,它们之间进行数据传送。 对于一个汇编程序员来说: CPU里的主要部件是 寄存器。通过改变寄存器的内容实现对CPU的控制。 不同的CPU,寄存器的个数,结构都不相同。2. 8086CPU的所有寄存器都是 16位,存放两个字节,8086共有14个寄存器。 AX, BX, CX, DX四个寄存器通常原创 2012-07-09 16:11:48 · 6333 阅读 · 0 评论 -
2012.4.17内存相关
在VC中,栈空间未初始化的字符默认是-52,补码为0XCC,两个0xcc即0xcccc在GBK编码中,就“烫”;堆空间未初始化的字符默认是-51,两个-51 在GBK编码中就是“屯”。 二者都是未初始化的内存。 内存分布: 程序运行时,必须将可执行程序加载到计算机内存中,程序加载完毕后,就形成一个运行空间,并按下面方式布局: 代码区(Code Area):存放程序的执行代码。原创 2012-04-17 09:55:50 · 6650 阅读 · 0 评论 -
建议1 区分4中零值
0在C/C++语言中绝对是一个多面手,它扮演着多样的角色,拥有着多种面孔。总结起来包括以下几种角色:整型0、空指针NULL、字符串结束标志 '\0'、逻辑FALSE/false,不同的角色适用于不同的情形,下面我们按照上述顺序一一介绍。整型0这是我们最熟悉的一个角色。作为一个int类型,整型0占据32位的空间,其二进制表示为:00000000 00000000 00000000 000原创 2012-02-21 14:12:05 · 5661 阅读 · 0 评论 -
2012.4.19总结(二)
复制对象时勿忘其每一个成分 假设设计一个顾客类,构造函数由自己写出:void logCall(const std::string& funcName);class Customer{public: Customer(const Customer &rhs); Customer &operator =(const Customer &rhs); ~Customer原创 2012-04-19 12:33:13 · 5753 阅读 · 0 评论 -
孙鑫-MFC笔记三--绘图
一、 消息映射机制 在左边View类处点右键,在出现的菜单里点击“Add Windows Message Handler”,在出现的对话框里选择“WM_LBUTTONDOWN”,添加消息映射函数。 回到原文件,我们将看到三处进行了修改: 1, 在头文件(View.h)中声明消息响应函数原型。 //{{AFX_MSG(CDrawView) //注释宏原创 2012-05-02 22:35:16 · 6012 阅读 · 0 评论 -
孙鑫-MFC笔记五--对话框
对话框的创建模态对话框资源添加对话框,双击对话框创建对话框类。在menu中增加对话框菜单项,将其设为非popup的,并为其在view类下添加响应函数。View类中增加#include "TestDlg.h"。在响应函数void CMyboleView::OnDialog()中:CTestDlg dlg; dlg.DoModal(); 模态对话框即程原创 2012-05-03 10:57:41 · 9365 阅读 · 0 评论 -
孙鑫-MFC笔记六--绘图,重绘
Windows颜色对话框功能的添加:MFC提供了CColorDialog类,方便创建颜色对话框。CColorDialog dlg;dlg.DoModal();默认为黑色。即首参为值为0.保存用户所选的颜色,我们用CHOOSECOLOR结构体,用户选择颜色后,其成员rgbResult便保存了用户选择。CColorDialog有一个私用变量m_cc,便是该结构体类型对象。这样,原创 2012-05-07 14:37:19 · 12119 阅读 · 1 评论 -
C语言的声明分析
1原创 2013-09-15 09:43:41 · 5769 阅读 · 0 评论 -
关于链接的几点建议
1原创 2013-09-21 18:20:44 · 5804 阅读 · 0 评论 -
汇编学习--7.13--转移指令
1. 8086转移行为有: 只修改IP,段内转移。根据修改范围,分近转移(-32768~32767)和短转移(-128~127). 同时修改CS和IP,段间转移 2. 8086转移指令分类: 无条件转移指令 条件转移指令 循环 过程 中断 3. 操作符offset是伪指令,用来获得标号的偏移地址。eg:s:mov ax原创 2012-07-13 08:45:44 · 5684 阅读 · 0 评论 -
汇编学习--6.13--基础知识
1. 汇编语言的主体是汇编指令。汇编指令和机器指令的差别在于指令的表示方法上。汇编指令是机器指令便于记忆的书写格式。2. 寄存器:CPU里可以存储数据的器件,一个CPU里多个寄存器。 3. 编译器:一个能够将汇编指令转换成机器指令的翻译程序。程序员用汇编语言编写出源程序,再用汇编编译器将其编译为机器码,由计算机最终执行。4. 汇编指令:机器码的助记符,有对应的机器码。原创 2012-06-13 09:38:33 · 5651 阅读 · 0 评论 -
汇编学习--7.12--总结
1 在8086中,只有4个寄存器 bx,si,di,bp能用在内存单元的寻址‘[......]’,可以单个出现,也可以组合出现,但不能出现[si + di],[bx + bp],只要出现bp,则段寄存器默认为ss2 机器指令处理数据:指令执行前一刻,要处理的数据可以在CPU内部、内存、端口中。例如:mov bx,[0] 执行指令前数据在内存单元中,ds:0单元中。对应机器指令是4字节,原创 2012-07-12 12:39:40 · 5644 阅读 · 0 评论 -
汇编学习--7.16--int指令
int指令中断信息可以来自CPU的内部和外部,当CPU的内部有需要处理的事情发生的时候,将产生需要马上处理的中断信息,引发中断过程。上一章讲解了0号中断和单步中断,这一章将讲解另一种重要的内中断,由int指令引发的中断。 int指令格式:int nn为中断类型码,它的功能是引发中断过程。 CPU执行int n指令,相当于引发一个n号中断的中断过程,执行过程如下原创 2012-07-16 13:04:04 · 11181 阅读 · 0 评论 -
F2C用法
f2c是一个能将Fortran程序转换成c程序的软件和库,其官网为http://www.netlib.org/f2c/。官网中的资源如下:f2c.1:f2c程序使用手册f2c.pdf:介绍了转换的原理libf2c.zip(combined libf77, libi77, with several makefile variants):利用命令行nmake -f makefile.v原创 2012-02-01 09:23:27 · 11429 阅读 · 3 评论 -
孙鑫-MFC笔记十一--动态链接库
Windows三个重要的动态链接库Kernel32.dll,它包含用于管理内存、进程和线程的各个函数;User32.dll,它包含用于执行用户界面任务(如窗口的创建和消息的传送)的各个函数;GDI32.dll,它包含用于画图和显示文本的各个函数。静态库和动态库区别:静态库:函数和数据被编译进一个二进制文件(通常扩展名为.LIB)。在使用静态库的情况下,在编译链接可执行文件时原创 2012-05-15 09:02:34 · 6336 阅读 · 0 评论 -
C缓冲区
原文引自:http://www.cnblogs.com/octobershiner/archive/2011/12/06/2278492.htmlhttp://www.cnblogs.com/octobershiner/archive/2011/12/08/2281240.htmlC语言可以用指针直接操作内存地址,这是他的一个优势,但是也是安全最容易出问题的地方。我们知道C语言是没有内转载 2015-03-22 18:22:03 · 5913 阅读 · 0 评论 -
C语言查漏补缺
严格来说,C语言中没有“实型”(real type)这种数据类型。C语言中非构造类型只有整型(int、short、long、long long和对应的unsigned修饰的类型,以及同义写法),以及浮点型(包括单精度浮点型float,双精度浮点型double,长双精度浮点型long double)两大类。其中float和double内部储存形式遵循IEEE 754标准,long dou原创 2015-03-23 08:25:19 · 5864 阅读 · 0 评论 -
c++查漏补缺之自增自减运算符重载
http://blog.csdn.net/ccccdddxxx/article/details/7438287转载 2015-03-30 14:02:40 · 5809 阅读 · 0 评论 -
关于内存的思考
1原创 2013-09-24 21:47:01 · 5932 阅读 · 0 评论 -
依赖编程内部知识的C语言习惯用法
1原创 2013-09-28 11:22:01 · 5746 阅读 · 0 评论 -
函数返回值类型问题
如果函数的返回值是一个对象,有些场合用“引用传递”替换“值传递”可以提高效率。而有些场合只能用“值传递”而不能用“引用传递”,否则会出错。例如:class String{...// 赋值函数String & operate=(const String &other);// 相加函数,如果没有friend 修饰则只许有一个右侧参数friend String operate原创 2012-02-20 14:02:47 · 6632 阅读 · 0 评论