编译c++的时候,编译器自动定义了一个预处理器名字_ _cplusplus,(注意前面有两个下划线)。
因此我们可以根据它来判断程序是否为c++程序,以便有条件的包含代码。
例如:
#ifdef _ _cplusplus
//不错,我们要编译c++
//extern "c"我们在第七章在讲解
extern"c"
#endif
min(int ,int );
在编译c的时候,编译器定义一个_STDC_,当然_ _cpluscplus和_STDC_不会同时被定义的,
另外两个比较有用的名字是_LINE_和_FILE_。其中_LINE_是指已经编译的行数。_FILE_包含正在被编译的文件的名字。
另外两个预定义的名字是:_TIME_和_DATE_它们分别包含被编译文件的时间和日期。
时间的格式为:hh:mm:ss
例如:如果你是在正8点17分编译这个文件,那么时间表示为8:17:00。如果那天刚好为1998年10月23号,那么日期就为:oct23 1998
如果当前的或者文件的名字发生了变化,那么预定义名字_LINE_和_FILE_就会变化,其他的预定义名字在编译期间不会变化的。她们的值也不能被修改




posted @ 2008-06-21 10:44 清流琴音 阅读(111) | 评论 (0)编辑 收藏
 

头文件通过预处理器标识符(include)而成为我们程序的一部分。预处理器标识符用“#”来标识。这个符号放在程序的最开始 的第一行的位置上。处理这些标识符的程序称为预处理器(preprocessor),一般绑定在编译器中。
include 指示符读入指定文件的内容,它有两种格式:
#include<iostream>
#include"iostream"
如果文件名用"<"和 ">"括起来。那么表示这个文件是一个工程文件或者标准的头文件。查找过程会检查预定义的目录。我们可以通过设置搜索路径环境变量或者命令行选项来修改这些目录。
如果文件是用引号括起来的,就表示这个文件是用户自己提供的,那么查找这个文件的时候,就可以从当前的目录开始查找,
被包含的文件可能还会包含#include,一个同文件可能会被同一个原文件多次的包含。条件指示符可以防止这种头文件被重复包含的情况。
例如:
#ifndef   BOOKSTORE_H
#define BOOKSTORE_H
/*bookstore.h的内容*/
#endif
条件指示符#ifndef用于检查预编译器常量BOOKSTORE_H是否已经被定义了(习惯上我们把与编译器常量用大写表示)。如果BOOKSTORE_H没有在前面定义的话,那么#ifndef 的值为真。那么#ifndef 和#endif中间的语句

将会被执行,否则的话,之间的语句就会被忽略。
为了保证头文件只被处理一次。把如下的的头文件放在#ifndef的后面。
#define指示符放在#ifndef的后面。这样头文件在第一次包含的时候,BOOOKSTORE_H就被定义了,那么以后如果在出现包含头文件的情况,则 #ifndef的值就为假了。
只要不存在“两个必须包含的头文件使用同一个预编译器常量”这种情况,那么这种机制就会很好的运行。
#ifdef指示符用来判断一个预定义器常量是否已经被定义了,以便有条件的包含程序代码。

注意:
#ifndef条件指示符和ifdef指示符的区别。
前者用于防止头文件被重复包含,而后者则是为了判断一下一个预定义器常量是否被定义了。


我们在编译程序的时候,可以使用-D,在——D的后面写上预处理器常量的名字,这样就可以在命令行中定义一个与处理器的常量了。
$CC -DBOOKSTORE_H   main.c
也可以用#define指示符来定义一个预处理器的常量。


posted @ 2008-06-17 14:58 清流琴音 阅读(444) | 评论 (2)编辑 收藏
 

我们的程序是由算法和数据组成的。算法是(就是将指令组织起来实现特定的功能),
在c++语言中,动作 被称为表达式(expression),以分号结尾的表达式称为语句。在程序中最小的单元是语句(statement).
 函数:把语句按照逻辑分组,就形成了某些单元,。这些单元称为函数(funtion)。
函数由四个部分组成:函数返回值的类型,函数名,参数列表,函数体,前三个组合起来称为函数原型(funtion prototype).
函数的参数由一个或者多个逗号隔开,由一个小括号括起来。函数体由一对花括号括起来。
return 语句是c++语句提供的预定义的语句,它提供了一种中止函数执行的方法。当return返回一个值的时候。例如:0 ,就表示这个函数返回了这个值(return value)。在标准的c++中当函数没有显示的返回值的时候,默认的函数返回值为0。
void 用来指定一个没有返回值的函数。
#include 是预处理器指示符(preprocessor directive)
在c++标准库中的名字。如:cout 不能直接在程序中使用,除非在预处理器标识符:#include<iostream>的后面使用 using  namespce std;
这条语句被称为using 指示符(using directve),c++标准库中的名字在我们的程序的文件是不可见的,它们都是在一个名字空间中声明的。我们只有显示的使用它们。这样的话,这些声明在名字空间中的名字才有可能在我们的文件中可见。using 告诉编译器使用在std名字空间中的名字。
编译器的一部分的功能是:分析程序代码的正确性,另一个功能是转换正确的程序代码。这种转换称为代码的生成(code generation),一般的情况下这些会生成汇编指令或者目标代码。这些目标代码可以被运行这些程序的计算机所理解。
成功编译的结果是一个可执行的文件。
c++定义了一组内置的数据类型,这些数据类型是:整型(int ),浮点型(float),布尔型(ture,和false ),字符类型,
在这些内置的数据类型之间可以隐式的发生转换(conversion).
c++标准还提供了一组扩展的数据类型。字符串类型(string),复数类型(complex number ),列表(list),向量(vector).



posted @ 2008-06-17 14:19 清流琴音 阅读(169) | 评论 (0)编辑 收藏
 
动态连接是一种(juest-in -time)连接。这个就是以意味着,程序在执行的时候要能正确的找到函数库,连接器通过把库文件名和路径名植入到可执行文件中做到这一点,这就意味着函数库的路径不可以随意的改变。
使用静态连接的最大危险在于,将来版本的操作系统可能会和现在可执行文件所绑定的系统函数库不兼容。
函数库链接的5个秘密:
1;动态链接库文件的扩展名字是 ".so",而静态连接库文件的函数名字是".a".
posted @ 2008-06-10 15:29 清流琴音 阅读(125) | 评论 (0)编辑 收藏
 
比较数组和指针的区别,就是比较它们各自的特点:
第一:指针中保存的是数据的地址,而数组保存的是直接的数据。
第二:指针是间接的访问数据,首先得到指针的内容,然后以这个指针的内容作为地址,通过这个地址来访问数据, 而数组则是直接访问数据,a[i]表示以a[i-1]为地址来访问数据。
第三:指针通常用于动态的数据结构,数组一般用于存贮固定数目且数据类型相同的数据元素。
第四:指针相关的函数为mallo(),free(),数组隐式的分配和删除
第五:指针通常指向匿名数据,数组本身就是数据名。

数组和指针都可以在它们定义的时候,用字符串常量来初始化。虽然形式是一样的,但是底层的机制却是不一样的。
指针在定义的时候,编译器并不为指针所指向的对象分配空间,而只是为其本身的分配空间。除非在定义的时候用字符串常量进行初始化。但是只能用字符串常量进行初始化,其他的象浮点型,int型的常量是不可以的,编译的时候会出现无法编译的错误。
例如:char* p="dfdf f "(为其分配了内存空间)
   char*p=3.14//会出现编译错误
在ASCI C中,初始化指针的字符串常量被定义为只读。如果试图通过指针来修改字符串常量的内容,就会出现未定义的行为。有些编译器中,把这些字符串常量保存在一个只读的文本中,防止被修改。
数组也可以用字符串常量进行初始化,与指针相反的是用字符串常量进行初试话的数组,可以被 修改的,单个字符在以后中是可以改变的,例如:
 char butter[]="ff ff ff ff";
 strncpy(butter,"111",5);
结果就是 char butter[]="111fff';

posted @ 2008-06-06 10:45 清流琴音 阅读(500) | 评论 (0)编辑 收藏
 
为您介绍简单方法就是可以从SQL Server Online Book开始学习SQL服务器的所有内容,并配合SQL Server开始安装、设置和使用了。

  当你进入了编程环境,就可以建立数据库并使用不同的工具来学习数据库的各种方法,例如设计一个逻辑数据模型并执行它。因为SQL与数据的操作有关,你可以使用其各种特性,还可以建立存储程序,触发器,查看等功能。

  提醒您不要忽略安全机制和性能调试,对于一个数据库而言,观察并调试使之顺利平稳地工作是至关重要的。除此之外,MCDBA考试还包括与性能调试和特定程序相关的问题。

  下面是在辅导下已经通过MCDBA的学员总结的一些学习经验:

  1、先熟悉MMC,即Enterprise Manager的操作;

  2、学会用SQL Query Analyzer分析你的SQL语句执行效率;

  3、使用存储过程/视图/以及SQL Server特有的服务;

  4、学会使用Profiler来调试你的客户端程序;

  5、学习数据库管理技术;

  6、熟读SQL Server Online Book非常有用!如果不怕辛苦看一遍很值得。

posted @ 2008-03-19 18:24 清流琴音 阅读(216) | 评论 (3)编辑 收藏
 
111
http://www.verycd.com/topics/160024/

http://www.verycd.com/topics/64762
http://www.verycd.com/search/folders/mcse
http://www.mcse.org.cn/showtopic-4987.aspx 
http://www.mcse.org.cn/showforum-2.html
http://www.verycd.com/search/folders/mcse
http://bbs.tech.ccidnet.com/read.php?tid=283574
http://www.zuowenw.com/jsjks/microsoft/kaoshifudao/MCDBA/
http://www.softii.com/downlist/s_313_2.html
posted @ 2008-03-14 20:12 清流琴音 阅读(151) | 评论 (3)编辑 收藏
 
软认证心得:拿下微软四个证书
  • 2007-06-01 10:08:29 来源:考试大 地区:北京 关键字:考经  收藏到好诶
  •   我本人算是半个IT工作者,所谓半个,是因为我每天的工作有网络维护、网站维护、微机维护、摄影、摄像等……多样工作。经过一年的努力(两年的相关工作经验),看完了一尺多高的教材和辅导(十几斤重,7000到8000页),才总算快要拿到0MCP+MCDBA+MCSA+MCSE,但经我这一年多的观察,不知别的地方如何,陕西的MCSE+MCDBA已经彻底的混乱和贬值崩溃了,前些日子《西安商报》一文章竞然不负责任的报道:有一个高中生在一个暑假考完了MCP+MCSE+MCDBA+MCSD!!!如此吹牛! 
      我感觉,就是一个过了大学英语四级的学生也不一定能真正读懂MCSE课程中的英语!!!特别是像219这门,更何况是一个高中生!!!他敢站出来和大家说他不是100%的PAPER?可见陕西的MCSE烂到如何程度!!!如此多的100%通过的培训中心,以及到处都有的BIBLE?试问这样了MCSE值几个钱?别的地方我不知道,在陕西,MCSE不代表什么,比个国家二级强不了多少!在陕西,一个100%单纯PAPER的MCSE也就值个250(开个玩笑,比如那个《西安商报》上报道的用了一个月考完MCSE+MCDBA+MCSEA+MCSD的。要在一个月看完二三十斤重、厚达二尺多,近万页的书,佩服!!!!!)如果是靠自己努力考出来的,应该值个1000-3000的。 
      大概谈一下我的考试情况: 
      我的考试顺序是:先215(215的一些试题为win网络的主题,所以建议215,210,216,217连续考,间隔不要超过一个月,巩固概念,逐步加强,复习217时,会有50%以上的216的内容。第一科是实践科目,熟悉考试环境,培养考试心态都是在这一科完成的,而且对以后的士气很有用,必须一次性通过。)219是综合科目,在看完全部材料的情况下,最后考219,轻松完成mcse认证之旅!后210、216、217、218、228、229、219这样的考试可以拿MCP、MCSA、MCDBA这个证书比MCSE有用,当然如果你从事数据库方面的开发,维护的话。感觉在国内做大型分布式网络,仅仅是个mcse还是不够的,因为windows在这样的网络里只有充当client的分,但是在中小型数据库应用程序,sqlserver绝对是首选。你只要有这个证书就可以找一份很好的工作了(例如中小型管理软件的维护)特别说明,216适宜在学完210和215以后充分准备再去应考,否则除非你是使用微软产品的高手中的高手,不然十有八九会挂掉;70-216课程主要是测试运行和管理微软Windows2000网络基本构造,比基础(210)和服务器(215)的考核都难得多。如果你已经通过了210和215和考试,就已有了大量对Windows 2000网络亲身操作经验,当然,大多数的人还是要集中精力进行大量的重点学习和实验室的实际工作来达到熟练掌握以达到考核水平。网络基础考核的内容包括对Windows2000网络服务器的深入了解以及它的运作原理:DHCP, WINS, DNS IPSEC CA和RRAS等是贯穿整个考试的中心内容。同时也需要了解实际子网的运作方式。你要看一些配置网络协议安全和认证服务器的资料。然而 ,由于你掌握了专业和服务器的内容,所以能够理解Windows 2000操作系统的细节,明白Windows 2000网络服务器功能的基本知识。 
       对于大多数人来说,这门课程是考取MCSE、MCDBA、MCSA最难通过的一门,所以你要慎之又慎,我用的教材是MOC教材,感觉MOC教材一向高就高在是“授人以渔,而非鱼”,但要想顺利通过216的考试,光看这几本书还不够,可以参考清华出版的与MOC相配套的精解练习以及Training Kit等
  • posted @ 2008-03-13 13:06 清流琴音 阅读(143) | 评论 (0)编辑 收藏
     
     【IT专家网独家】区分数据库管理工作的一个有效方法是按照其对应用系统支持工作的类型来划分。我们可以列出DBA的职责,然后用一条线将不同的职能分开,根据区分开的职能,DBA可以被分为二种:支持开发工作的DBA和支持产品系统的DBA。

      开发DBA们对整个应用开发的生命周期提供支持。因为这些应用的数据库没有开始运行,所以这类DBA的工作对业务不会产生即时的影响。开发DBA致力于构建一个高效、可用的数据库环境并以此来支持业务应用。当程序和系统构建的时候,开发DBA对整个过程提供支持和辅助工作,包括构建和维护应用程序所需要的适当数据结构。

      开发DBA们需要数据模型和规范化方面的技能,以保证设计出来的数据库符合数据完整性。开发DBA还必须能够将逻辑数据模型转换成物理数据库实现的能力。

      一旦测试数据库被创建,开发DBA们将辅助程序员构建和编辑测试数据。测试数据的生产、编辑,载入都必须经过一定的处理,以保证这些数据对构建的应用程序是适合并有效的。开发DBA还需要给团队提供工具,以方便数据库测试和数据的更新。他或她需要和整个开发团队一起工作,以确保用正确的方法访问数据库以及应用程序中应用逻辑的修改。最终,开发DBA需要和开发团队一起工作,创建并维护高效的数据库相关逻辑-存储过程、触发器和用户自定义函数,这些都是数据库管理系统控制下的程序。开发DBA将帮组构建,测试和维护这些存储过程、触发器和用户自定义函数。

      对比之下,产品DBA的工作是基于已完成的应用系统,对正在运行中的业务系统提供支持。产品DBA致力于确保可行性,优化性能,维护可用性。一旦数据库应用系统开始运行,关键的工作就变成了如何确保它们持续稳定的运行。这可以归结为PAR,PAR是三个单词的首字母缩写:性能(performance),管理(administration)和恢复(recovery)。这三项功能,是产品DBA们在维护数据库系统过程中的三项最主要工作。

      数据库性能管理是通过资源使用的优化,增加利用率并减少资源争夺,最终实现尽可能多的处理更多的业务。性能需要从IT基层结构开始管理。数据库管理和运行有一些日常业务可以参照:包括变化管理,数据库结构的检查,安全和权限控制等任务。备份和恢复需要在特定的时间对适当的数据库进行适当的备份,以确保其可恢复到以前的状态。当产品DBA按照PAR工作的时候,应用程序就会根据设定的服务级别来运行,数据库将在最佳的设计和良好的状态下被管理,数据也能够有效的备份,在出错或者宕机的时候可以恢复。

      综上所述,很多时候,为了创建一个良好的数据库应用系统,我们需要定义、计划和训练开发DBA和产品DBA这两种角色。

    posted @ 2008-03-13 12:57 清流琴音 阅读(183) | 评论 (1)编辑 收藏
     

     

    作者: Echo,  出处:IT专家网, 责任编辑: 李书琴, 
    2007-11-12 09:44
       微软认证数据库管理员资格考试是数据库专业人员展示自己的SQL Server专业技能水平的一个机会。如果你想要向雇主证明自己的能力,或者希望在事业的阶梯上更向上攀爬,又或者仅仅是想要获得一张好看的证书给自家的墙壁稍作点缀,MCDBA(微软数据库管理员认证)资格都可以满足你的欲望……

      【IT专家网独家】微软数据库管理员认证

      微软认证数据库管理员资格考试是数据库专业人员展示自己的SQL Server专业技能水平的一个机会。如果你想要向雇主证明自己的能力,或者希望在事业的阶梯上更向上攀爬,又或者仅仅是想要获得一张好看的证书给自家的墙壁稍作点缀,MCDBA(微软数据库管理员认证)资格都可以满足你的欲望。

      要通过MCDBA认证,你需要通过三门核心考试和一门可选考试。跟微软其他大部分的认证项目一样,MCDBA考试可以参加当前最新版本的SQL Server或者是马上要退居二线的版本的考试。但是,最好当然是考现有的最新版本的SQL Server,这样才可以让资格证书“保鲜期”尽可能长一点。

      核心考试I:SQL Server管理。

      微软目前针对SQL Server 2000只提供70-228考试。

      这门考试主旨在于测试考生对于数据库管理和解决数据库管理相关问题的能力。如果你觉得自己已经胸有成竹了,可以试一下70-228 Practice Exam。如果你觉得还需要再准备一下,那么可以尝试一下Transcender practice tests。这些测试跟真题非常相似。

      核心考试II:SQL Server设计

      考生需要通过70-229考试,主要是测试考试成功设计并执行SQL Server数据库方案的能力。

      核心考试III:网络系统。要达到这个要求,可以选择通过以下三门考试中任何一门。首先是70-215考试,这门考试主要测试考生安装、配置和执行管理Microsoft Windows 2000 Server的能力。如果你使用的是Windows 2003,你可以选择通过测试管理和维护Microsoft Windows Server 2003环境的70-290考试,或者测试安装、配置和执行管理Microsoft Windows 2003 Server网络基础结构的70-291考试。

      可选考试。考生可以从下面的考试中选出自己需要的MCDBA考试。这些考试覆盖面广,包含了许多应用程序开发技术、数据入库技巧和网络设计基础知识。目前可供选择的考试包括:

      70-216考试:执行和管理Microsoft Windows 2000 网络基础结构

      70-293考试:策划和维护Microsoft Windows 2003 网络基础结构

      70-528考试:Microsoft NET Framework 2.0 — 网络系统客户开发

      70-526考试:Microsoft .NET Framework 2.0 — 桌面系统客户开发

      70-529考试:Microsoft .NET Framework 2.0 — 分布式应用系统开发

      70-305考试:运用Microsoft Visual Basic .NET 和Microsoft Visual Studio .NET 开发和执行Web应用系统

      70-306考试:运用Microsoft Visual Basic .NET和Microsoft Visual Studio .NET开发和执行桌面应用系统

      70-310考试:运用Microsoft Visual Basic .NET和Microsoft .NET Framework 开发XML Web Services 和Server Components

      70-315考试:运用Microsoft Visual C# .NET和Microsoft Visual Studio .NET开发和执行Web应用系统

      70-316考试:运用Microsoft Visual C# .NET和Microsoft Visual Studio .NET开发和执行桌面应用系统

      70-320考试:运用Microsoft Visual C# 和Microsoft .NET Framework开发XML Web Services和Server 组件

      一定要注意的是MCDBA考试跟其他微软认证考试有一定的重叠,包括Microsoft认证系统管理员(MCSA)、Microsoft认证系统工程师(MCSE)和Microsoft认证解决方案开发专家(MCSD)。如果你正在考虑以后要通过以上认证,你就应该认真地考虑如何选择你的MCDBA考试了。因为通过的同一门考试可以作为多个认证的资格考试,认真挑选你要通过的考试可以既省钱也省时间。

    posted @ 2008-03-13 12:55 清流琴音 阅读(790) | 评论 (0)编辑 收藏
    仅列出标题
    共4页: 上一页 1 2 3 4 下一页