
C++
IT_YUAN
这个作者很懒,什么都没留下…
展开
-
指向函数的指针
(一) 用函数指针变量调用函数 可以用指针变量指向整形变量、字符串、数组、结构体、也可以指向一个函数。一个函数在编译时被分配一个入口地址。这个入口地址就称为函数指针。可以用一个指针变量指向函数,然后通过该指针变量调用此函数。用简单的数值比较为例:1 #include stdio.h>2 #include stdlib.h>3 4 int main()5 {转载 2012-10-16 10:17:23 · 599 阅读 · 0 评论 -
C编译: 动态连接库 (.so文件)
在“纸上谈兵: 算法与数据结构”中,我在每一篇都会有一个C程序,用于实现算法和数据结构 (比如栈和相关的操作)。在同一个程序中,还有用于测试的main()函数,结构体定义,函数原型,typedef等等。这样的做法非常不“环保”。算法的实际运用和算法的实现混在一起。如果我想要重复使用之前的源程序,必须进行许多改动,并且重新编译。最好的解决方案是实现模块化: 只保留纯粹的算法实现,分离头文转载 2014-04-14 15:37:57 · 1120 阅读 · 0 评论 -
[c]如何通过结构体元素找到结构体?
1. 问题提出我们知道,如果有一个结构体定义如下:struct _st { int a; char b; } st ; 我们可以通过st访问到a或者b,方法就是st.a(或者如果有st的指针pst,那么就用pst->a)。但是,如果知道了结构体中元素的指针,是否可以获得当前结构体的指针呢?或者说,如果我只能访问到b,我可以访问到st和a么?2. 这个问题的实际意转载 2013-06-21 10:26:17 · 2059 阅读 · 0 评论 -
内联函数与普通函数、成员函数与静态函数的区别(知识整理)
内联函数与普通函数的区别 普通函数在编译的过程中由编译器将函数体放入代码段,在调用函数过程中先进行参数的压栈,然后根据函数的调用地址调用函数,并执行,函数返回后执行出栈操作,这样就会有一个调用的过程,会有时间的消耗。内联函数可以避免这样的消耗,一个函数申明为内联函数,在编译的过程中,编译器会将函数体代码插入函数调用处,这样虽然会增加代码段的空间,但是可以避免时间上的消耗,提高了转载 2013-06-08 11:26:51 · 2559 阅读 · 0 评论 -
c++ 覆盖、重载、隐藏(推荐很好的读一下)
“overload”翻译过来就是:超载,过载,重载,超出标准负荷;“override”翻译过来是:重置,覆盖,使原来的失去效果。先来说说重载(Overload)的含义,在日常生活中我们经常要清洗一些东西,比如洗车、洗衣服。尽管我们说话的时候并没有明确地说用洗车的方式来洗车,或者用洗衣服 的方式来洗一件衣服,但是谁也不会用洗衣服的方式来洗一辆车,否则等洗完时车早就散架了。我们并不要那么明确地转载 2012-10-16 02:21:35 · 664 阅读 · 0 评论 -
C++中include <iostream>和include <iostream.h>的区别
简单来说: .h的是标准C的头文件,没有.h的是标准C++的头文件,两种都是头文件。 造成这两种形式不同的原因,是C++的发展历史决定的,刚才正好有别的人也问这个问题,这里我再回答一下(注意vs2008和vs2005对标准C++的支持是一样的):1、以iostream和stdio.h为例,iostream是C++的库,stdio.h是标准C的库。2、新的C++标准摒弃了.h形式的头文件,所转载 2012-10-16 02:20:33 · 1675 阅读 · 0 评论 -
hash函数实现
Hash FunctionsA comprehensive collection of hash functions, a hash visualiser and some test results [see Mckenzie et al. Selecting a Hashing Algorithm, SP&E 20(2):209-224, Feb 1990] will be availa转载 2013-03-07 14:33:58 · 1108 阅读 · 0 评论 -
C语言中的位域的使用
一、位域 有些信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位。例如在存放一个开关量时,只有0和1 两种状态, 用一位二进位即可。为了节省存储空间,并使处理简便,C语言又提供了一种数据结构,称为“位域”或“位段”。所谓“位域”是把一个字节中的二进位划分为几个不同的区域, 并说明每个区域的位数。每个域有一个域名,允许在程序中按域名进行操作。 这样就可以把几个不同转载 2012-10-16 10:18:36 · 675 阅读 · 0 评论 -
va_list深究
VA函数(variable argument function),参数个数可变函数,又称可变参数函数。C/C++编程中,系统提供给编程人员的va函数很少。*printf()/*scanf()系列函数,用于输入输出时格式化字符串;exec*()系列函数,用于在程序中执行外部文件(main(int argc, char* argv[]算不算呢,与其说main()也是一个可变参数函数,倒不如说它是exe转载 2013-05-30 16:34:11 · 1126 阅读 · 0 评论 -
C语言文件操作函数大全
C语言文件操作函数大全clearerr(清除文件流的错误旗标) 相关函数 feof表头文件 #include 定义函数 void clearerr(FILE * stream); 函数说明 clearerr()清除参数stream指定的文件流所使用的错误旗标。 返回值 fclose(关闭文件) 相关函数 close,fflush,fopen,setbuf原创 2013-03-03 19:51:44 · 539 阅读 · 0 评论 -
#include <cctype>
c++中应该是#include c中应该是#include 以下为字符函数库中常用的函数:函数名称返回值isalnum()如果参数是字母数字,即字母或数字,该函数返回trueisalpha()如果参数是字母,该函数返回真isblank()如果参数是空格或水平制表符,该函数返回trueiscntr转载 2012-10-16 10:25:21 · 1120 阅读 · 0 评论 -
C++内存分配方式详解——堆、栈、自由存储区、全局/静态存储区和常量存储区
在C++中,内存分成5个区——堆、栈、自由存储区、全局/静态存储区和常量存储区栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清除的变量的存储区。里面的变量通常是局部变量、函数参数等。在一个进程中,位于用户虚拟地址空间顶部的是用户栈,编译器用它来实现函数的调用。和堆一样,用户栈在程序执行期间可以动态地扩展和收缩。堆,就是那些由new分配的内存块,他们的释放编译器不去管,由我转载 2012-10-16 10:22:27 · 1257 阅读 · 0 评论 -
c++对象内存模型【内存布局】
#类中的元素0. 成员变量 1. 成员函数 2. 静态成员变量 3. 静态成员函数 4. 虚函数 5. 纯虚函数#影响对象大小的因素0. 成员变量 1. 虚函数表指针(_vftptr) 2. 虚基类表指针(_vbtptr) 3. 内存对齐_vftptr、_vbtptr的初始化由对象的构造函数, 赋值运算符自动完成;对象生命转载 2014-04-28 16:30:07 · 15610 阅读 · 1 评论