自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小泽再沐风

你瞅啥

  • 博客(33)
  • 收藏
  • 关注

原创 c语言volatile关键字

简单地说就是防止编译器对代码进行优化。比如如下程序: 1 2 3 4 XBYTE[2]=0x55; XBYTE[2]=0x56; XBYTE[2]=0x57; XBYTE[2]=0x58; 对外部硬件而言,上述四条语句分别表示不同的操作,会产生四种不同的动作,但是编译器却会对上述四条语句进行优化,认为只有XBYTE[2]=0x58(即忽略前三条语句,只产生一条机器代码)。如果键入volatile,则编译器会逐一.

2020-07-24 14:15:40 212

原创 软件设计中的高内聚、低耦合

一、内聚1.定义 一个模块内部各元素聚集、关联的程度。 定义的范围在一个模块内部。一个高内聚模块,应该恰好只做一件事。高内聚就是模块内各元素高度聚集、高度关联。2.特点 高内聚模块具备较好的可靠性、可重用性、可读性。3.分类 功能内聚、顺序内聚、.......、偶然内聚(排序由高内聚至低内聚)。 功能内聚——一个模块内所有元素的存在都是...

2019-09-24 21:12:37 1224

原创 VS生成项目时报错:“error LNK 1168:无法打开xxxxxx.exe进行写入”

到单位报到后写了第一个小程序,但是写完代码生成项目时经常遇到这种情况:“error LNK 1168:无法打开xxxxxx.exe进行写入”。解决办法有三种(前两种治标不治本,第三种办法可以根治):1.什么都不干,等一会,大概几分钟吧,就可以成功生成了。2.把之前Debug文件夹里生成的.exe文件删掉,就可以成功生成了。3.最根本的办法:打开控制面板->管理工具->服务->启用...

2018-06-11 22:24:58 23999 6

原创 ASCII码、c++ explicit

一、介绍1.ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。它是现今最通用的单字节编码系统;2.总共8个bit,其中最高位始终为0,实际上是7位即0000000~01111111(0~127,共128个)。二、需要记的1.0=

2017-08-15 13:32:17 403

原创 c++ 各进制赋值、int/char转换、sscanf/sprintf、位操作运算

一、各进制赋值1.16进制赋值int i=0x12AD;int i=0X12AD;int i=0x12Ad;int i=0X12Ad;//以上都是16进制,表示10进制173;2.8进制赋值int num=017;//数字前面加0就是8进制,017表示10进制15,若写018则编译出错。(error C2041: 非法的数字“8”(用于基“8”)

2017-08-10 16:19:53 5773 1

原创 网络号、主机号、子网号、子网掩码、子网划分

1.Internet上每一台计算机都有唯一的地址来标识它的身份,即IP地址,使用域名其实也是要转化为IP地址的。2.IP地址分类:A类:000~127,默认子网掩码:255.0.0.0B类:128~191,默认子网掩码:255.255.0.0C类:192~223,默认子网掩码:255.255.255.0D类:224~239E类:240~255

2017-08-03 15:55:37 67942 15

原创 SQL语言基本语句

一、表1.创建表CREATE TABLE haha(name CHAR(10) NOT NULL,                                        number CHAR(20) NOT UNIQUE,                                        city CHAR(10)                     

2017-08-02 15:21:53 325 1

原创 dll、lib(动态链接库、静态链接库)的区别

1.dll:dynamic link library;   lib:static link library。2.windows系统中,许多app并不是仅由一个完整的exe构成,而是按功能分成了若干部分,由exe、dll、lib等组成,这些里面包含了函数的实现过程等。3.lib编译时用到,用一下,链接完了就没事了;dll运行时用到,可能一直都在用。4.如果只有

2017-07-31 14:44:27 412 1

原创 计算机网络、OSI模型、TCP\IP族

一、计算机网络分类1.按通信距离分类:局域网:LAN,10m-1000m,房间、校园;城域网:MAN,10km,城市;广域网:WAN,100km以上,国家、全球。二、OSI(Open System Interconnection)模型和TCP\IP协议族1.OSI分层的目的是将复杂问题简单化。2.TCP\IP协议族是Internet的核心协议。3.OSI模型共7

2017-07-27 15:27:09 415 1

原创 套接字、UDP通信、TCP通信、TCP\IP协议簇

一、套接字(socket)1.单词socket:n.插座;穴;v.插入插座2.套接字就是源IP地址和目的IP地址、源端口号和目的端口号的组合,是通过传输层进行通信的。IP指定电脑,端口指定某一具体APP。3.套接字类型:        流式:SOCK_STREAM,基于TCP;        数据报式:SOCK_DGRAM,基于UDP;        原始式:SOCK_

2017-07-24 15:23:57 550 1

原创 c++ 函数模板、全局变量、register、存储周期

1.函数声明时可以简写,如:int max(int,int);只写参数类型就行。2.函数模板:格式:template 或template typename、class为关键字,class也是指函数而非类。e.g.template haha max(haha a,haha b){ //xxxxx}调用时像调用正常函数一样就行。3.有默认参数的函数:in

2017-07-22 16:46:47 720 1

原创 c++ 数组、字符串、string

1.定义数组时,数组中元素的个数不能是动态的,不能用变量表示(const变量可以),必须是已知的。2.引用数组时只能引用数组中某个元素,不能引用整个数组。3.定义二维数组时,若同时全部初始化,则可省略第一维的长度,e.g.int a[][3]={1,2,3,4,5,6,7,8,9};

2017-07-22 14:52:05 462 1

原创 c++ 引用、指针

一、引用1.引用的作用:给变量起一个别名,是c++对c的扩充。原名和别名有相同的地址,根本上就是同一个东西,只是名字不一样。c++的引用机制主要是为了用作函数参数,增强函数传递数据的能力,比如swap函数,引用就是为了直接修改实参。2.声明方式:int a;int &b=a;&紧跟在数据类型后,即为引用声明符,其他地方为取地址符。注意:声明一个引用时必须同时初始化,之后不能再

2017-07-21 17:25:13 198 1

原创 c++ 类、对象、class

一、对象初始化1.不能在类声明中对数据成员初始化,因为类只是一个抽象类型,不占存储空间,无处容纳数据。2.若某类的数据成员都是public,则可以像结构体一样初始化,如 Time t={12,21,04};若数据成员有private或protected则不能这样初始化。3.构造函数没有返回值,不需要用户调用,也无法被用户调用。4.带参数的构造函数初始化格式:类名 对象名(实参1,实

2017-07-19 14:18:28 350 1

原创 c++ 运算符重载、数据类型转换

1.运算符就是“+”、“>>”等符号,对运算符重载实质就是对函数的重载,这样运算符就能在原有基础上增加新功能,不能自己定义新运算符,只能对已有运算符重载;2.运算符重载格式:函数类型 operator 运算符名称(形参表){//具体操作}e.g. complex operator +(complex &c1)operator是关键字,函数名由operator和运算符

2017-07-17 15:37:01 537 1

原创 c++ 多态、虚函数、虚析构函数

1.若某种语言只支持类但不支持多态,则只能称为基于对象,不能说是面向对象。2.多态:向不同对象发送同一个消息,不同的对象会产生不同的行为,发送消息可以是调用函数等操作。函数重载、运算符重载都是多态。3.多态分为静态和动态:静态多态性:函数重载和运算符重载(实质也是函数重载),编译时就知道调用哪个函数;动态多态性:编译时不知道调用哪个函数,运行时才知道,是要通过虚函数

2017-07-14 17:13:19 625 1

原创 c++ 继承/派生、访问属性、构造函数

1.子类继承父类的继承方式:public,private,protected,不写则默认为private;2.子类会继承父类的全部成员(除了构造和析构函数),全盘接受,没得选,不能只继承一部分,而不继承另一部分,这样就可能造成数据冗余,在继承时可能会继承了一大堆没用的东西,这个问题目前的c++也无法解决,所以继承时父类的选择要谨慎。但是,可以改变继承的成员在子类中的访问属性,即可能全盘

2017-07-13 15:33:07 738 1

原创 c\c++ 输入输出

一、分类1.标准输入输出键盘输入,显示器输出。2.文件输入输出以外存为对象,即硬盘、光盘等。3.串输入输出对内存中指定空间进行输入输出。二、c语言中的输入输出(#include )1.scanf,printfchar a,b;scanf("%c%c",&a,&b);printf("%c%c",a,b);scanf可以一直输入字符(包括tab,空格,但

2017-07-10 16:38:05 436 1

原创 c++ 异常处理(try catch throw)、命名空间

一、c++工具模板(函数模板、类模板)、异常处理、命名空间等功能是c++编译器的功能,语言本身不自带,这些功能已经成为ANSI C++标准了,建议所有的编译器都带这些功能,早期的c++是没有这些功能的。二、异常处理try:检查catch:捕捉throw:抛出用法如下:try{//可能出错的语句//可以含有throw}catch(类型){//如

2017-06-26 16:02:04 661 1

原创 c++ new/delete [],内存泄漏,动态数组

一概念new/delete是用于动态分配和撤销内存的运算符。new/delete是c++里才有的,c中是用malloc和free,c++虽然也可以用,但是不建议用。当我们使用关键字new在堆上动态创建一个对象时,它实际上做了三件事:获得一块内存空间、调用构造函数、返回正确的指针。当然,如果我们创建的是简单类型的变量,那么第二步会被省略。删除一个指针p(delete p)实际意思是删除了

2017-05-25 20:27:42 3483 1

原创 c++ vector

一概念vector是C++标准模板库(STL)中的部分内容,它是一个多功能的、能够操作多种数据结构和算法的模板类和函数库。vector之所以被认为是一个容器,是因为它能够像容器一样存放各种类型的对象,能够存放任意类型的动态数组,可以广义上认为是数组的增强版。vector 容器与数组相比其优点在于它能够根据需要随时自动调整自身的大小以便容下所要放入的元素,vector 也提供了许多的方法

2017-05-25 15:10:52 207 1

原创 c++ class、struct区别

区别一默认访问控制不同(最主要)struct默认为public,class默认为private。这个访问控制既是指成员的默认访问属性,又指继承时默认的继承属性。区别二定义template时不同在模版中,类型参数前面可以使用class或typename,如果使用struct,则含义不同,struct后面跟的是“non-type template parameter”,而c

2017-05-25 13:39:19 292 2

原创 c++ const

一、作用const是类型修饰符,经常用const来限制对一个对象或变量的操作,使用类型修饰符const说明的类型称为常类型,常类型的变量或对象的值是不能被更新的。const的用法很灵活,使用const将大大改善程序的健壮性。二、用法1.const常量const int NUM=100;in const NUM=100;以上两者一样,NUM不能被修改,且在声明时必须初始化。若

2017-03-20 15:33:56 235 1

原创 c/c++ typedef

一、用途1.定义一种类型的别名typedef  int  ElementTpye;ElementTpye i;//相当于int i;typedef  int*  PInt(或者typedef  int   *PInt也一样);PInt i;//相当于int *i;2.与struct结合,省略struct本来应该这样,在声明新的结构体变

2017-03-17 14:50:25 445 1

原创 计算机 Little-Endian 和 Big-Endian (大小字节序、大小端)

一、概念endian:字节存储顺序,端模式。Little-Endian 和 Big-Endian表示的是计算机字节顺序,所谓的字节顺序指的是长度跨越多个字节的数据的存放形式(若只有一个字节则不需考虑字节序的问题)。对于整型、长整型等数据类型,Big endian 认为第一个字节是最高位字节(按照从低地址到高地址的顺序存放数据的高位字节到低位字节);而Little endian 则相反,

2017-03-14 15:51:41 1425 1

原创 c/c++ union

一、概念中文称为共用体或联合体。主要用于共享内存,在C/C++程序的编写中,当多个基本数据类型或复合数据结构要占用同一片内存时,我们要使用联合体;当多种类型,多个对象,多个事物只取其一时(我们姑且通俗地称其为“n 选1”),我们也可以使用联合体来发挥其长处。在“联合”中,各成员共享一段内存空间, 一个联合变量的长度等于各成员中最长的长度。应该说明的是, 这里所谓的共享不是指把多个成员同时装

2017-03-14 15:33:07 298 1

原创 c++ static、extern

一、static本质作用与static相对的关键字是auto,两者是一对。我们一般声明变量,如:int a,其实都是auto int a,只是auto省略了而已,但是static不能省略。要理解static,最好先理解auto。auto的含义是由程序自动控制变量的生存周期,通常是变量在进入其作用域的时候被分配,离开其作用域的时候被释放;而static则不同,变量在程序初始化时被分配,直到程序退

2017-03-03 15:56:41 368 1

原创 c/c++ struct的定义、声明、对齐方式

一、定义/声明方式第一种:仅有结构体名,不定义/声明变量struct MyStruct{     int i;     char a[10];     double b;};第二种:有结构体名,并声明变量名struct MyStruct{     int i;     char a[10];     double

2017-03-02 15:17:14 5732 1

原创 c/c++ char*、char[]

一句话,char *s是一个保存字符串首地址的指针变量,char a[]是许多连续的内存单元,单元中的元素为char类型。之所以用char *能达到char []的效果,还是字符串的本质,即给你一个字符串地址,便可以随心所欲的操作它。但是,char*和char a[]的本质属性是不一样的。

2017-02-28 14:13:38 5325 2

原创 字符编码方式ASCII、Unicode、UTF-8

一、ASCII即American Standard Code for Information Interchange(美国信息交换标准代码),是基于拉丁字母的,主要用于显示现代英语和其他西欧语言。一个字节有8个二进制位(bit),可以表示256(2^8)种不同的状态,即256个符号,从0000000到11111111。ASCII码一共规定了128个字符的编码,比如大写的字母A是65(二进制01

2017-02-27 11:29:52 388 1

原创 sql server 2008 在某表格里新增一列时失败

新增列语句:alter table 表名 add 列名 float default 0 with values。警告: 已经创建表 'xxxx',但是它的最大行大小超过了允许的最大字节数 8060。如果得到的行超过此大小限制,则对此表的 INSERT 或 UPDATE 操作将失败。不能创建大小为 8066 的行,该大小大于所允许的最大行大小 8060。

2017-01-11 19:27:37 1272 1

原创 CPU位数、操作系统位数、计算机字长、C/C++基本数据类型长度

CPU位数 = CPU中寄存器的位数 = CPU能够一次并行处理的数据宽度(位数) = 数据总线宽度;//现在的处理器一般都是64位CPU为了实现其功能设计了指令集,即是CPU的全部指令,这就是机器语言。计算机的所有功能都是基于CPU的指令集。指令集和CPU的位数是有联系的。

2016-12-19 20:59:20 7590 1

转载 GPU和CPU的相异同

概念:CPU即中央处理器,GPU即图形处理器。相同之处:两者都有总线和外界联系,有自己的缓存体系,以及数字和逻辑运算单元,两者都为了完成计算任务而设计。不同之处:CPU虽然有多核,但总数也不多,每个核都有足够大的缓存和足够多的数字和逻辑运算单元,需要很强的通用性来处理各种不同的数据类型,同时又要逻辑判断又会引入大量的分支跳转和中断的处理,并辅助有很多加速分支判断甚至更复杂的。

2016-12-18 20:39:28 800 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除