当前搜索:

【CS】(奇妙的)虚拟存储器

虚拟存储器,Virtual Machine,简称VM,是对主存(DRAM)的一种抽象,是计算机系统中最重要的概念之一。计算机中有各种存储器,而VM的存在,就是为了帮助我们有效地管理这些存储器,减少错误,提供一种简单的数据交互方法。VM,将主存看成是一个存储在磁盘上的地址空间的高速缓存,在主存中只保存活动区域,并根据需要在磁盘和主存中来回传送数据,而且为每个进程提供了一致的地址空间,并保护这个地址空间...
阅读(71) 评论(0)

【C++】深入理解模板

1、简介模板是一种代码复用方式,其它的代码复用方式还包括继承和组合。当我们使用模板时,参数由编译器来替换,这非常像原来的宏方法,但却更清晰、更容易使用。在C++中,模板实现了参数化类型的概念,放在一对尖括号中,通过template这个关键字,告诉编译器随后的定义将操作一个或更多未指明的类型,当由这个模板产生实际代码时,必须指定这些类型以使编译器能够替换它们。下面是一个简单的模板类。template...
阅读(120) 评论(0)

【C++】 运算符重载

1、一元运算符运算符重载是C++的一大特色,以函数重载的形式出现,函数名为关键字operator后跟着一个运算符,这些函数可以作为类的成员函数实现,也可以作为类的友元函数以全局函数的形式实现,而有的操作符只能以其中一种方式实现,因为全局函数没有this指针,所以在参数列表中比成员函数多一个参数。可以重载的一元运算符包括+、-、~、&、!、++、--,例子如下。// Overloading Unary...
阅读(86) 评论(0)

【C++】C++中的C

C++兼容C,但同样的东西,在C++和C中的表现可能不同,下面总结了一些。1、函数空参int f();函数空参时,C表示任意参数,C++表示没有参数。int f(void);C表示没有参数时使用void。2、函数参数标识符int f(int a); int f(int);声明函数时,C和C++都可以省略标识符。int f(int a) {} int f(int) {} // C++定义函数时,C++...
阅读(261) 评论(0)

【C++】深入理解C++的常见关键字

1、autovoid foo() { auto int f = 0; } void foo() { int f = 0; }auto变量即自动变量或局部变量,位于一个进程的地址空间的堆栈段,它们是局限于一个函数的,出现在一个作用域内,进入作用域时自动生成,离开作用域时自动消失,这种变量默认就是auto。2、registerfor (register int i = 0; i < 100; ++i)...
阅读(246) 评论(0)

【C++】链接器及undefined reference的秘密

1、链接器当C或C++要对函数和变量进行外部引用时,根据引用情况,链接器会选择不同的处理方法。如果还未遇到过这个函数或变量的定义,链接器会把它的标识符加到未解析的引用列表中,即undefined reference。如果链接器遇到过这个函数或变量的定义,那么这就是已解决的引用。如果链接器在目标模块中不能找到函数或变量的定义,它将去查找库。库有某种索引方式,链接器不必到库里查找所有目标模块,而只需浏览...
阅读(154) 评论(0)

【C】《C专家编程》核心知识点总结

1、穿越时空的迷雾编译器设计者的金科玉律:效率几乎就是一切,这包括两个方面,编译效率和运行效率,而后者起决定性作用。有很多编译优化措施会延长编译时间,但却能缩短运行时间;还有一些优化措施如清除误用代码和忽略运行时检查等,既能缩短编译时间,又能减少运行时间,同时还能减少内存的使用量,但有利就有弊,在于使用者如何权衡。早期C语言的许多特性是为了方便编译器设计者而建立的,如类型系统、数组下标从0而不是1开...
阅读(311) 评论(0)

【Algo】排序算法

1、冒泡简介—— 冒泡排序,可以想象成从水中冒出的气泡,从水中到水面气泡逐渐变大,近似有序排列。冒泡排序就是这个思想,对于给定的一组N个数据,从前往后或者从后往前,依次比较两个相邻数据的大小,不满足排序要求(从小到大或者从大到小)的就交换它们的位置,每轮比较可以冒出一个最大数或者最小数。因为是两个数据作比较,所以每轮最多只需比较N-1次,而且对于已经冒出的数据即排序好的数据没有必要再进行比较,所以...
阅读(253) 评论(0)

【OpenGL ES】顶点着色器

1、输入输出顶点着色器可用于传统的基于顶点操作,例如通过矩阵变换位置、计算照明方程式以生成逐顶点的颜色以及生成或者变换纹理坐标。顶点着色器的输入、输出如下图所示。输入变量或属性:用顶点数组提供的逐顶点数据。 统一变量和统一变量缓冲区:顶点着色器使用的不变数据。 采样器:代表顶点着色器使用的纹理的特殊统一变量类型。 着色器程序:顶点着色器程序源代码或者描述在操作顶点的可执行文件。 输出或可变变...
阅读(288) 评论(0)

【CS】软件测试概念Software Testing

1、定义软件测试的经典定义是:在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。行业标准IEEE/ANSI提出的软件工程术语中给软件测试下的定义是:使用人工或自动的手段来运行或测定某个软件系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。2、方法从是否关心软件内部结构和具体实现的角度划分: ——白盒测试。 ——黑盒...
阅读(568) 评论(0)

【C++】cppcheck

1、简介cppcheck是一款用于C/C++的代码静态检查工具,与编译器和其它的分析工具不同,cppcheck不检查代码中的语法错误,主要目的是检查编译器在正常情况下发现不了的错误,即代码中真正的错误或者说运行时错误,也就是计算机术语中的zero false positives,如越界操作、内存泄漏、空指针引用、变量未初始化等等。2、示例test.c示例代码如下:int main() { c...
阅读(441) 评论(0)

【C++】cpplint

1、简介cpplint或cpplint.py是Google开发的一款代码静态检查工具,Python实现,用以检查C++代码是否遵循Google代码规范,还可以发现语法错误。2、示例test.cpp示例代码如下:int foo(int a) { if (a < 0) { a = 0; } return a; }int bar(int a) { if (a...
阅读(452) 评论(0)

【Bash百宝箱】doxygen

1、简介doxygen是一个用于多种编程语言的文档系统,支持C++、C、Java、Objective-C、Corba和Microsoft风格的IDL、PHP、C#、D等。在Linux下,doxygen是一个命令行工具,另外还有一个GUI工具doxywizard,下面简单介绍doxygen的用法。2、配置文件在Linux shell执行如下命令,其中-g表示生成配置文件,-s表示配置文件中不保留注释代...
阅读(380) 评论(0)

【C】C语言内存函数

C语言内存函数向编程人员提供复制、比较与设置内存块的有效方式,这些函数属于字符串函数,放在库文头文件string.h中声明,C89增补1增加了5个操纵宽字符数组的新函数。string.h中的这些函数名称以mem开头,内存块在标准C语言中用void*类型指针指定,常用函数原型如下:void* memchr(const void *ptr, int val, size_t len); int memcm...
阅读(488) 评论(0)

【C】C语言字符处理函数

字符处理有两类函数:分类和转换,每个字符分类函数的名称以is开头,返回int类型的值,在参数为指定类时为非0值即真,否则为0即假,每个字符转换函数的名称以to开头,返回int类型的值,表示一个字符或EOF。字符处理函数在库头文件ctype.h中声明,另外,C89增补1定义了对宽字符进行运算的分类与转换函数,与普通字符对应,在头文件wctype.h中声明。字符分类处理函数具体如下:// ctype.h...
阅读(489) 评论(0)
262条 共18页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:326444次
    • 积分:6057
    • 等级:
    • 排名:第4703名
    • 原创:257篇
    • 转载:0篇
    • 译文:5篇
    • 评论:45条
    Make Others Better.
    博客专栏
    文章分类