![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c/c++
大胖5566
科学、技术与人文的统一和谐,本人邮箱moodytong@126.com
展开
-
C语言中extern修饰符的用法
在C语言中,修饰符extern用在变量或者函数的声明前,用来说明“此变量/函数是在别处定义的,要在此处引用”。0. extern修饰变量的声明。举例来说,如果文件a.c需要引用b.c中变量int v,就可以在a.c中声明extern int v,然后就可以引用变量v。这里需要注意的是,被引用的变量v的链接属性必须是外链接(external)的,也就是说a.c要引用到v,不只是取决于在a.c中声明extern int v,还取决于变量v本身是能够被引用到的。这涉及到c语言的另外一个话题--变量的作用域。能够被转载 2010-09-02 12:12:00 · 681 阅读 · 0 评论 -
Extern c详解
1.引言C++语言的创建初衷是“a better C”,但是这并不意味着C++中类似C语言的全局变量和函数所采用的编译和连接方式与C语言完全相同。作为一种欲与C兼容的语言,C++保留了一部分过程式语言的特点(被世人称为“不彻底地面向对象”),因而它可以定义不属于任何类的全局变量和函数。但是,C++毕竟是一种面向对象的程序设计语言,为了支持函数的重载,C++对全局函数的处理方式与C有明显的不同。2.从标准头文件说起某企业曾经给出如下的一道面试题:为什么标准头文件都有类似以下的结构? #ifndef __INC转载 2011-05-08 16:02:00 · 607 阅读 · 0 评论 -
不同目录下同名文件的提取与拷贝
<br />程序需求:例如有目录a和b,需要找出两者之下同名的文件,记住是同名不需要格式一样,然后将同名的文件从a拷贝到另外一个目录c下。<br />实现如下:(实现了将f盘下a目录和b目录中同名文件从a拷贝到c中)<br />#include<stdlib.h>#include<stdio.h>#include<iostream>#include<dirent.h>#include<vector>#include<iterator>#include<string>#define原创 2011-04-18 16:58:00 · 3526 阅读 · 0 评论 -
c++继承浅析
<br /> 面向对象语言的三个显著特征就是继承,多态和封装。<br /> 在c++里面允许多重继承,本文就不同继承方式进行简单描述,同时简单讲一下继承时候的一些问题,以及多重继承。<br /> 派生类的生成过程分为3步走:第一步是吸收基类成员,实际上派生类包含了基类中除构造函数和析构函数之外的所有成员;第二步是改造基类成员,一方面是基类成员的访问控制,另一方面是对基类数据或函数成员的覆盖,所谓覆盖就是在派生类中声明一个和基类数据或函数同名的成员;第三步就是添加新的成员。在基类原创 2011-04-10 22:42:00 · 697 阅读 · 1 评论 -
c++中的sizeof
1.对内置类型的sizeiof 例如sizeof(int)为4,即整型占用4个字节 sizeof(char)为1,即字符类型占用1个字节 假设一下例子中,int占用4字节,char占用1字节,double占用8个字节,float也是占用4个字节 2.对struct和class的sizeof1) 结构体变量的首地址能够被其最宽基本类型成员的大小所整除; 2) 结构体每个成员相对于结构体首地址的偏移量(offset)都是成员大小的整数倍, 如有需要编译器会在成员之间加上填充字节(i原创 2011-05-12 21:28:00 · 690 阅读 · 0 评论 -
c中printf执行详解
<br />以printf("x=%d, y=%d, z=%d",x,y,z)为例子<br />1.先求表达式x,y,z的值<br />2.将z,y,x依次压入运行时堆栈<br />3.将格式串中的替代符与x,y,z匹配<br />4.输出替代后的串<br />附注:即时表达式中的值不会被输出,但是仍然会求。即会执行1是必然的,但有可能3时没有匹配到输出<br /> <br />函数:<br />int x=y=3;<br />printf("x=%d, y=%d",x++,y++,y++);<br />p原创 2011-05-09 22:10:00 · 747 阅读 · 0 评论 -
c之文件
c文件类的函数,一直让我头痛不已,因为常常忘记,这里写个网络笔记,以后可以看。文件格式 c语言中的文件按照存储格式可以分为文本文件和二进制文件,文本文件中存取的基本单位是字符即以字节为单位,每个字节存储的是一个ASCII码值;而二进制文件中数据则是按其在内存中的存储样式原样输出到二进制文件中存储的,可能比较拗口,其实本质就是,比如你写个int二进制文件中,那么它在内存中占用的是32bit即四个字节(这里假设int的size为四个字节)。 我们可以举个例子,例如12345。原创 2010-11-25 18:07:00 · 640 阅读 · 0 评论 -
c/c++之const
c++中的const是个好东西,但是东西往往杂糅不堪,对于这个c++知识中的冰山一角,决定给它来一次全面体检,当然我这个不称职的doctor只能做部分体检项目。权且当作自己的笔记吧。1。const 和常用变量 这里说的常用变量,其实指的就是c++中的内置类型。 例如定义:const int a =100; int const a=100; 上述两个语句功能一样,就是a这个int变量被永远赋值为100的int常量了,不可修改,在这原创 2010-11-23 13:28:00 · 668 阅读 · 0 评论 -
在c++中用while(cin)的问题
xp系统中利用dev-cpp进行编程,语句while(cin>>str),str是个string类型,在一行中输入几个string,末位加个ctrl+z,输入没有结束,除非出入换行后,再输入ctrl+z才能跳出输入。一直不明白未什么,解释请看下。 输入缓冲是行缓冲。当从键盘上输入一串字符并按回车后,这些字符会首先被送到输入缓冲区中存储。每当按下回车键后,cin.get() 就会检测输入缓冲区中是否有了可读的数据。cin.get() 还会对键盘上是否有作为流结束标志的 Ctr原创 2010-11-22 19:24:00 · 3332 阅读 · 0 评论 -
c++类模板遇到的两则问题
情景前提: 将类模板的声明和实现分开,分别在头文件和源文件中,平台是vs2005. 第一个问题是关于类模板的基本知识问题,错误类型2039: 通过代码就能复习了,这里mark一下: 声明文件中的代码,文件名:gstack.h template class gstack{public: gstack(); int Initstack(); int DestoryStack(); int ClearStack(); int StackE原创 2011-01-06 22:53:00 · 1330 阅读 · 2 评论 -
VC的Profile(测试程序瓶颈)
<br />Profile的作用<br /> 帮助你分析并发现程序运行的瓶颈,找到耗时所在,同时也能帮助你发现不会被执行的代码。从而最终实现程序的优化。 <br />Profile的组成<br /> Profile包括3个命令行工具:PREP,PROFILE,PLIST。可以以命令行方式运行Profile,其过程是:PREP读取应用程序的可执行文件并生成一个.PBI文件和一个.PBT文件;PROFILE根据.PBI文件,实际运行并分析程序,生成.PBO输出文件;PREP再根据.PBO文件和.PBT文件转载 2010-10-15 15:39:00 · 1392 阅读 · 0 评论 -
DEV-C++对c文件提示无法编译的问题
为了苦逼的软件可靠性作业,只能写点代码了,上网找到了DEV-C++(http://sourceforge.net/p/devcpp/home/),安装完毕,编写了一个Hello world.c程序,编译->ok,点击运行->源文件未编译。 百思不得其解,上网搜了下,原来DEV-C++是没有自己的编译器的,它使用的是mingw中的一些东东,或者说源头是gcc的东东,打开路径Dev-C原创 2011-12-31 10:54:54 · 22365 阅读 · 0 评论