摘要:下载:http://ftp.gnu.org/gnu/gcc/gcc-4.5.1/gcc-4.5.1.tar.bz2浏览:http://ftp.gnu.org/gnu/gcc/gcc-4.5.1/查看Changes:http://gcc.gnu.org/gcc-4.5/changes.htm现在很多程序员都应用GCC,怎样才能更好的应用GCC。目前,GCC可以用来编译C/C++、FORTRAN、JAVA、OBJC、ADA等语言的程序,可根据需要选择安装支持的语言。本文以在Redhat Linux安装GCC4.1.2为例(因在项目开发过程中要求使用,没有用最新的GCC版本),介绍Linux安装GC
阅读全文
随笔分类 - C++
OSS
摘要:本文出自:程序员的自我修养:链接、装载与库1.2 C/C++运行库11.2.1 C语言运行库任何一个C程序,它的背后都有一套庞大的代码来进行支撑,以使得该程序能够正常运行。这套代码至少包括入口函数,及其所 依赖的函数所构成的函数集合。当然,它还理应包括各种标准库函数的实现。这样的一个代码集合称之为运行库(Runtime Library)。而C语言的运行库,即被称为C运行库(CRT)。如果读者拥有Visual Studio,可以在VC/crt/src里找到一份C语言运行库的源代码。然而,由于此源代码过于庞大,仅仅.c文件就有近千个,并且和C++的STL 代码一起毫无组织地堆放在一起,以至于实际上
阅读全文
摘要:C++引入了ostringstream、istringstream、stringstream这三个类,要使用他们创建对象就必须包含sstream.h头文件。 istringstream类用于执行C++风格的串流的输入操作。ostringstream类用于执行C风格的串流的输出操作。strstream类同时可以支持C风格的串流的输入输出操作。 istringstream类是从istream和stringstreambase派生而来,ostringstream是从ostream和 stringstreambase派生而来, stringstream则是从iostream类和stringstr...
阅读全文
摘要:要想很好的使用C++中的多态性,就免不了要使用指针和引用,也免不了会碰到转换的问题,所以在这一篇,就把导师讲的以及在网上反复查阅了解的知识总结一下。C++提供了四个转换运算符:const_cast <new_type> (expression)static_cast <new_type> (expression)reinterpret_cast <new_type> (expression)dynamic_cast <new_type> (expression)它们有着相同的结构,看起来像是模板方法。这些方法就是提供给开发者用来进行指针和引用的转
阅读全文
摘要:作用:将一个基类对象指针(或引用)cast到继承类指针,dynamic_cast会根据基类指针是否真正指向继承类指针来做相应处理, 即会作一定的判断。 对指针进行dynamic_cast,失败返回null,成功返回正常cast后的对象指针; 对引用进行dynamic_cast,失败抛出一个异常,成功返回正常cast后的对象引用。注意:dynamic_cast在将父类cast到子类时,父类必须要有虚函数。例如在下面的代码中将CBasic类中的test函数不定义成 virtual时,编译器会报错:error C2683: dynamic_cast : “CBasic”不是多态类型对编译器的要求:
阅读全文
摘要:本文从介绍基础概念入手,探讨了在C/C++中对日期和时间操作所用到的数据结构和函数,并对计时、时间的获取、时间的计算和显示格式等方面进行了阐述。本文还通过大量的实例向你展示了time.h头文件中声明的各种函数和数据结构的详细使用方法。关键字:UTC(世界标准时间),Calendar Time(日历时间),epoch(时间点),clock tick(时钟计时单元)1.概念在C/C++中,对字符串的操作有很多值得注意的问题,同样,C/C++对时间的操作也有许多值得大家注意的地方。最近,在技术群中有很多网友也多次问到过C++语言中对时间的操作、获取和显示等等的问题。下面,在这篇文章中,笔者将主要介绍
阅读全文
摘要:MXML手册:http://www.minixml.org/strfiles/93/minixml-cn.html#INTRO
阅读全文
摘要:字符串可以用字符数组与字符串变量两种方式来存储,效果类似。一、用字符数组来存储字符串:char st1[100],st2[100] ; //字符数组说明cin>>st1>>st2;long a,b;输入:hello, world则st1={‘h’,’e’,’l’,’l’,’o’,’,’,’\0’}st2={‘w’,’o’,’r’,’l’,’d’,’\0}字符’\0’为字符串结束标志1. 字符数组长度 strlen(st1); //如a=strlen(st1);b=strlen(st2); 则a=6,b=52. 字符数组比较 不能直接比较,st1>st2是错误的,要
阅读全文
摘要:在讨论全局变量之前我们先要明白几个基本的概念:1. 编译单元(模块):在IDE开发工具大行其道的今天,对于编译的一些概念很多人已经不再清楚了,很多程序员最怕的就是处理连接错误(LINK ERROR),因为它不像编译错误那样可以给出你程序错误的具体位置,你常常对这种错误感到懊恼,但是如果你经常使用gcc,makefile等工具在linux或者嵌入式下做开发工作的话,那么你可能非常的理解编译与连接的区别!当在VC这样的开发工具上编写完代码,点击编译按钮准备生成exe文件时,VC其实做了两步工作,第一步,将每个.cpp(.c)和相应.h文件编译成obj文件;第二步,将工程中所有的obj文件进行LIN
阅读全文
摘要:C++标准库非常大。在C++标准中,关于标准库的规格说明占了密密麻麻300多页,这还不包括标准C库,后者只是 "作为参考"包含在C++库中。当然,并非总是越大越好,但在现在的情况下,确实越大越好,因为大的库会包含大量的功能。标准库中的功能越多,开发自己的应用程序时能借助的功能就越多。C++库并非提供了一切(没有提供并发和图形用户接口的支持),但确实提供了很多。几乎任何事都可以求助于它。 因为标准库中东西如此之多,你所选择的类名或函数名就很有可能和标准库中的某个名字相同。为了避免这种情况所造成的名字冲突,实际上标准库中的一切都被放在名字空间std中。但这带来了一个新问题。无数
阅读全文
摘要:将字串格式化命令。sprintf 是个变参函数,使用时经常出问题,而且只要出问题通常就是能导致程序崩溃的内存访 问错误,但好在由sprintf 误用导致的问题虽然严重,却很容易找出,无非就是那么几种情况,通 常用眼睛再把出错的代码多看几眼就看出来了。 sprintf 将字串格式化。 在头文件 #include<stdio.h >中 语法: int sprintf(string format, mixed [args]...); 返回值:字符串长度(strlen) sprintf格式的规格如下所示。[]中的部分是可选的。 %[指定参数$][标识符][宽度][.精度]指示符 若想输..
阅读全文
摘要:在将各种类型的数据构造成字符串时,sprintf 的强大功能很少会让你失望。由于sprintf 跟printf 在用法上几乎一样,只是打印的目的地不同而已,前者打印到字符串中,后者则直接在命令行上输出。这也导致sprintf 比printf 有用得多。 sprintf 是个变参函数,定义如下: int sprintf( char *buffer, const char *format [, argument] ... ); 除了前两个参数类型固定外,后面可以接任意多个参数。而它的精华,显然就在第二个参数: (1)格式化字符串上。 printf 和sprintf 都使用格式化字符串来指...
阅读全文
摘要:long pos = file.tellg(); // 得到文件指针当前指向的文件位置。 file.seekg(0,ios::beg); //让文件指针定位到文件开头 file.seekg(0,ios::end); //让文件指针定位到文件末尾 file.seekg(10,ios::cur); //让文件指针从当前位置向文件末方向移动10个字节 file.seekg(-10,ios::cur); //让文件指针从当前位置向文件开始方向移动10个字节 file.seekg(10,ios::beg); //让文件指针定位到离文件开头10个字节的位置
阅读全文
摘要:main()函数及其参数 C++标准允许主函数main()有或没有参数列表。 能在主函数main()中使用一个或更多的参数。 如下是一些惯例: int main(int argc, char *argv[]) 第一个参数argc,指明有多少个参数将被传递给主函数main(),真正的参数以字符串数组(即第2个参数argv[])的形式来传递。每一个字符串均有自己意思。在这句法上面, 记住, argc代表参数的数量, main()函数本身是在索引0为的第一参数。 所以, argc总是至少为1 。它的总数是从argv列阵的元素数目。 这意味着, argv[0]的值是至关重要的。 如果用户在控制...
阅读全文
摘要:1. I/O的书写格式I/0流是输入或输出的一系列字节,当程序需要在屏幕上显示输出时,可以使用插入操 作符“<<”向cout输出流中插入字符。例如:cout<<”This is a program.\n";当程序需要执行键盘输入时,可以使用抽取操作符 “>>”从cin输人流中抽取字符。例如:int myAge;cin>>myAge;不管把什么基本数据类型的名字或值传给流,它都能懂。例如,下面的函数输出字符串和整数:#include iostream.hvoid main(){ cout << "My name is
阅读全文
摘要:一:标准输入函数cin 它是代表标准的输入设备--键盘,它是属于流的,他的用法和流的用法是一样的。也就是:cin>>变量; 输入多个变量可以写在一行,如:cin>>x>>y>>z; 这样写不好看,一般在输入语句的前面,都要做一个提示,”请输入×××”。 另外,这个函数是不用带地址符号"&"的,也不用写明变量类型,千万不要跟scanf混淆。当然也不检查变量输入是否合法。如:int i;cout<<"please input a number:"cin>&
阅读全文
摘要:1.定义strlen与sizeof在MSDN上均有英文定义。下面只说一下我自己的理解。strlen是函数,是用来返回字符串长度的。在执行的过程中寻找结束标识符'\0',如果发现则返回之前的长度。而sizeof是内置运算符,返回变量的地址占用字节数。 2.示例: char *ch=newchar;cout<<sizeof(ch)<<endl;//返回4,返回指针所占内存:4个字节cout<<strlen(ch)<<endl;//返回5,因为ch是由new分配的,ch所指向的内存并没有初始化//所以它指向的内容是随机的;而strlen
阅读全文

浙公网安备 33010602011771号