??xml version="1.0" encoding="utf-8" standalone="yes"?>
在电(sh)车或是普通椅上Q常左脚跨在右脚之上者,通常均是(zhn)有脑溢血的hQ而且他们的脸色较思h要红Q这是由于右脚的兌不能自由zd而导致的现象Q由于右脚有毛病Q很隑ְ其置攑֜左脚之上所造成的后果? 按照书上说的,在main函数里面return跟exit是一L(fng)
站立时习(fn)惯把双手插入裤袋的hQ城府较深,不轻易向露内心的情A。性格偏于保守、内向。凡事步步ؓ(f)营,警觉性极高,不肯M别h?
站立时常把双手置于臀部的人:(x)自主心强Q处事认真而绝不轻率,hN一切的能力。他们最大的~点是主观,性格表现固执、顽固?
站立时喜Ƣ把双手叠放于胸前的人:(x)q种人性格坚强Q不屈不挠,不轻易向困境压力低头。但是由于过分重视个人利益,与h交往l常摆出一副自我保护的防范姿态,拒h于千里之外,令h难以接近?
站立时将双手握置于背后的人:(x)性格特点是奉公守法,重权威Q极富责LQ不q有时情l不E_Q往往令h莫测高深Q最大的优点是富于耐性,而且能够接受新思想和新观点?
站立时习(fn)惯把一只手插入裤袋Q另一只手攑֜w旁的hQ性格复杂多变Q有时会(x)极易与h相处Q推心置腏V有时则冯冰霜Q对人处处提Ԍq起一道防护网?
站立时两手双握置于胸前的人:(x)其性格表现为成竹在胸,对自q所作所为充满成功感Q虽然不至于睥睨一切,但却t躇满志Q信心十?
站立时双脚合qӞ双手垂置w旁的hQ性格特点诚实可靠Q@规蹈矩而且生性坚毅,不会(x)向Q何困隑ֱ服低头?
站立时不能静立,不断改变站立姿态的人:(x)性格急躁Q暴烈,w心l常处于紧张的状态,而且不断改变自己的思想观念。在生活斚w喜欢接受新的挑战Q是一个典型的行动M者?
通常Q不论哪只脚在上Q大凡摆在上面的那只脚易于疲功뀂当脚部出现疲劳现象Ӟ可做脚腕部位的上下运动及(qing)扇Şq动Q促使毛l管扩张Q促q血液@环,会(x)大大有益于缓解病症?
坐稳后两腿张开姿态懒散者,一般的说来都比较胖。这Uh׃腉K的肉q多Q行C十分方便Q说得比较多而做得相对要。这cMh属于豪言壮语型,头脑中想的事情经常是被夸大了的?
坐下时左肩上耸,膝部紧靠Q致使双腿呈X字Ş的hQ一般均比较谨慎Q但他的x力特差,也缺男子汉的气。即使是一个男性,他也是比较女性化的男性。如果你对他有过多希望的话,其结果多为失望?
坐下手臂曲vQ两脚向外的hQ其x力十分迟钝。每天他都在不断地计划些事物Q但却什么也实现不了。这Uh的理想与行动非常不协调,喜欢做白日梦。如果与此类人共事,怿一q中?x)出C间断的纠U?
坐下时两脚自然外伸,lh以一U十分沉着冷静印象的hQ属直情径行cd。这些h大都w体健康Q对疄的抵抗力很强。就命运而言Q他也是非常q运的?
坐下Ӟ一只手撑着下巴Q另一只手搭在撑着下巴的那只手的手肘之上,且架着“二郎腿”的人,大都不拘节Q面对失败亦能泰然自若。不q,如果你被q种惑住Q他?x)厚颜无d去逃避责QQ甚臛_你出各U利p卑鄙的手段?
双肩端vQ一脚架攑֜另一只脚之上作出庄重堂皇之态的人,虽然志向q大Q但却缺乏具体计划,致他的志向如空中楼阁一般,无法实现?
坐在车上两脚长在外Q妨通道Q同时将双手插在口袋里的人,大多是困R倒之人。如果其相貌长得不好Q通常伴有恐吓或胁q他人的行ؓ(f)。对q种人,最好采取敬而远之的态度?
两脚弯曲Q两手架在桌上伏w看书的人,Ҏ(gu)(zhn)甲状腺异常?qing)筋肿等疄。如果是q视眼的人,他也可能?x)稍E抬起屁股看书?
坐着看书Ӟ脚尖坚vQ同时眼睛不断向上翻的hQ肯定是个急性子。这是一U天生的个性。即使他有很多看书的旉Q但他还是显得非常匆忙,无法q_静气地看书?
驼着背看书的人,大多是高龄hQ这U风貌是借着领取退休金颐养天年的作风?
在读书时Q用手撑着下巴且姿势不良的人,其读书效率极差,同时此一姿态也是他的理解及(qing)记忆均有困难的h的象征。一个真正求学的人,是不?x)用q种不良姿态读书的?
跪坐在桌前,两手大张撑在桌上q不时左双看者,如果他的态又很怡然自若Q那q就是一U计划大事业的姿态?
脚伸出桌底Qƈl常用手抚弄桌角的hQ是~Z力_意念的hQ很难成大事?
两脚前Q同时作Z卧姿态看书的人,常常是?zhn)有胃病的人。一个胃有毛病的人在q餐之后极易作出此种姿态?
一只脚跪坐Q另一只脚直立下垂的看书姿态,通常是瘦型老hQ多半把眼镜架在L下方。凡(zhn)胃?qing)肾病之人,多属此类型的人?
坐下后,把一只脚伸出去,而把重心攑֜另一只脚的女性,是一位非凡的自豪家。可是,如果q䆾自信的话Q反而会(x)使她变成一位厚颜无ȝx,使她的n心都无法正常发展Q进而变得非常虚假?
坐下后两脚同时倒向一方的人,是一个长旉站立工作的h的特有的?fn)惯。在百货公司里长期工作的x,其坐姉K常如此。这U坐姿的人,常能坚持自己的立场,不论别h如何批评Q她都不加理睬,也可以说是位脸皮很厚的女性?
坐下Ӟ脚尖朝外Q臂部与椅子紧密相脓(chung)Q这Uh非常耿直q脆Q直觉感十分发达?
坐下旉心向中,W一脚趾轻触地面Q脚部位稍E离开而正坐的方式Q是一U健L(fng)坐姿?/font>
]]>
exitQ?Q也可以正常退出,如果加其它的数|(x)1Q?Q?...可以表示׃不同的错误原因而退出?/p>
但是实际应用中总能发现一些区? 比如C++?return?x)自动调用全局对象的析构函? 而exit不会(x).
]]>
在托执行环境中使用托管代码?qing)其~译Q可以避免许多典型的D安全黑洞和不E_E序的编E错误。同P许多不可靠的设计也自动的被增Z安全性,例如 cd安全查,内存理和释放无效对象。程序员可以花更多的_֊xE序的应用逻辑设计q可以减代码的~写量。这意味着更短的开发时间和更健壮的E序?
VA?.0一直到现在的VAXQ功能越来越强大Q除了以前版本中的自动识别各U关键字Q系l函敎ͼ成员变量Q自动给入提C,自动更正大小写错误,自动标示错误{等以外Q最新的版本中还?/p>
WorkSpaceH口中加入一个VA ViewQ可以更方便的查扑ַE中的文件、类和变量?/p>
2.WndTabsQ强烈推荐)
WndTabs主要是在~辑H口中显CZ所有已l打开的文Ӟ在VC中能够更方便的操作这些文Ӟ比如修改文g属性,copy文g路径、文件名{,q且q开放源代码Q你要是愿意的话Q可以添加自己很兴趣的功能?/p>
3.LineCounter
用来l计整个工程的代码行敎ͼ包括总行数、代码行数、注释行数、空行数{,q且对多个工E一L(fng)计时Q不?x)把相同的文件计多?
4.Spelly
一个拼写检查的插gQ可以对整个文g或所选部分进行拼写检查,支持C/C++/C#, VB, Fortran 和HTML?/p>
5.SourceStyler C++
此插件是针对C++的一个格式化工具Q可以针对自q~码?fn)惯Q选择一U编码风|也可以自己定义,而且定义非常详细Q有表达式、指针、模ѝ类、枚丄十几U,肯定能满你的需要?/p>
6.Numega BoundsCheckerQ强烈推荐)
下蝲Q百度一下…?/p>
是针对Visual C++6.0应用E序的最为全面的错误工兗BoundsChecker 能自动指出静态,堆栈内存错误和资源泄漏问题。BoundsChecker 能够校验最新的 Windows APIsQ包?ActiveX, DirectX, OLE/COM, ODBC{等。能够发C Windows q_兼容性?/p>
7.BCGControlBar Library
下蝲Q百度一下…?/p>
非常好的一套应用于vc6的界面扩展类库,L的作?vc2003 的界面。ƈ且给了各U界面例子,如vc.net、outlook、更换皮肤等{?/p>
8.Comment Wizard
下蝲Q百度一下…?/p>
Visual C++插gQ提供了Visual C++源代码注解标准化与自动化功能。在它的帮助下,(zhn)可快速创建标头文件信息注解,文g中模块注解, C++处理方式Q以?qing)E语言功能与历史校正功能注解,{等?/p>
AutoComment:源代码(注释插gQ?br />UploadFiles/2006-12/127265382.zip
FastUtilities(注释插g)
UploadFiles/2006-12/127179180.rar
我不是一个聪明的E序员,不能在键盘上手指飞Q灵光似剑,一日千行,闭目成章。大师的高度Q远非我能指望,我会(x)犯很多错误,只是一个普通的E序员?/p>
所以,对于~程Q我是一个?zhn)观主义者?/p>
我不怿Q所~写的程序能够一ơ编译通过Q也不相信,能在安程序的所有错误都扑ևQ而不需要出差现场;更不怿Q我的程序能够在不同的环境下Q对各种异常Q都处理得非常完;不怿Q我的程序没有Q何内存丢失,可以q箋q行一周?/p>
我本来不是一个?zhn)观主义者,曄的我Q是那么Ȁ扬那么狂妄,只是一ơ次被打击,让我来务实,来冷静,来清醒地看待自己。随着岁月的增长,我编E的ơ数已越来越,但是Q我的?zhn)观主义思想却越来越?/p>
一打开E序Q我便想刎ͼ因ؓ(f)软g出错Q而不得不l用户写讨;便想刎ͼ因ؓ(f)每月L一ơ,客户Ҏ(gu)大发雷霆Q便惛_Q因Z品质量问题,而陪客户喝酒Q连饮七大瓶啤酒?/p>
那七瓶要命的啤酒Q依然不能让客户回心转意Q于是,我成了一个?zhn)观程序员?/p>
我是(zhn)观ME序员,好在q有五g武器?/p>
W一件武器:(x)断言QASSERTQ;
我希望,M调用我的模块的程序,都能按照希望的参数格式和调用Ҏ(gu)Q正地调用我的模块。因此,在我所~写的每一个模块内Q都?x)大量地使用断言QASSERTQ,在模块中加上了断aQ我便相信,E序模块有了一个一个相对真实的调用环意Q便有了一U虚qȝ安全感?/p>
W二件武器:(x)静态代码检工P如PC-lintQ有时也使用~译器的最严格的编译别;
我从不认为,自己是一个对C/C++/VC{,都非常熟(zhn)的E序员,l常?x)不心使用一些不正常的语法,或是不太考虑字段的边界,因此Q在E序~到一定的阶段Q都?x)采用pc-lintQ对我所~写的程序,q行严格的编译检查?/p>
W三件武器:(x)动态代码检工P如boundcheckQ?/p>
对于C/C++E序员而言Q最大的痛苦是内存泄漏Q或其它资源泄漏了,我对内存泄漏有天生的恐惧Q也l常在内存丢失方面犯错误Q因此,在品发布给用户前,一定会(x)采用动态代码检工Pq行一ơ彻底的试?/p>
W四件武器:(x)单元试工具Q如cppunitQ?/p>
我没有够的自信Q认p够很好地N多个模块的大型程序,也不怿自己写过的、超q?0行的E序?x)没有问题,因此Q我?x)尽量引入单元测试,?gu)一个重要的函数或模块进行地毯式单元试Q当看到那一遍测试通过的绿Ԍ才能够安心地回家睡觉?/p>
W五件武器:(x)调试信息Q?/p>
我相信,我所~写的所有程序,都不可能一ơ成功,即便再认真地调试查,再多地厂内工作,在现是免不了?x)出问题。因为,不可能在安模拟现场所有的情况Q也不能够对各种异常情况q行完整地猜。因此,在我所~写的很多程序中Q特别是与监控有关的、需要长期、连l运行的E序Q都?x)加上尽可能多的调试信息?/p>
在程序中加上调试信息Q是我最后的E草Q有了它Q我l于敢将产品战战兢兢Cl客戗?/p>
那么Q调试信息应该记录哪些内容?我想说的是,调试信息应该能够记录现场所有的信息Q包括:(x)
E序的启停状态;
调用它hE序的边界参敎ͼ
被它用的E序的边界参敎ͼ
与外部环境的边界Q包括操作系l、文件系l、硬件、数据库{;
与网l交互的两端边界Q?br />重要模块的被调用参数Q?br />模块内的重要q程的当前参敎ͼ
有了q些调试信息Q我便可以不出差了,当现场发生了事情Ӟ我的W一反应便是要求查看q些调试信息?/p>
今天一位朋友问我,你如何保证你的程序能够稳定,我告诉他Q我有五件武器?/p>
宝刀配英雄,现在我已很少~写E序了,q些武器Q就送给战斗在第一U的E序员吧Q也怽们现在不觉得它们有多重要Q但L一天,你们?x)自觉地它们带在n边的?/p>
若x=4Q则x*=x+2的gؓ(f)Q?br />A.36 B.24
C.18 D.20
错误:(zhn)选择的是C,正确{案为B
关系型数据库以行和列的Ş式存储数据,以便于用L(fng)解。这一pd的行和列被称Q一l表l成了数据库。用L(fng)查询QQueryQ来索数据库中的数据。一个Query是一个用于指定数据库中行和列的SELECT语句。关pd数据库通常包含下列lgQ?/p>
客户端应用程序(ClientQ?/p>
数据库服务器QServerQ?/p>
数据库(DatabaseQ?/p>
Structured Query LanguageQSQLQ是Client端和Server端的桥梁QClient用SQL来向Server端发送请求,Serverq回Client端要求的l果。现在流行的大型关系型数据库有IBM DB2、IBM UDB、Oracle、SQL Server、SyBase、Informix{?/p>
关系型数据库理pȝ中储存与理数据的基本Ş式是二维表?/p>
|状数据?/strong>
处理以记录类型ؓ(f)l点的网状数据模型的数据库。处理方法是网状结构分解成若干二U树(wi)l构Q称为系。系cd是二个或二个以上的记录类型之间联pȝ一U描q。在一个系cd中,有一个记录类型处于主导地位,UCؓ(f)pM记录cdQ其它称为成员记录类型?/p>
pM和成员之间的联系是一对多的联pR网状数据库的代表是DBTGpȝ?969q美国的CODASYLl织提出了一份“DBTG报告”,以后Q根据DBTG报告实现的系l一般称 为DBTGpȝ。现有的|状数据库系l大都是采用DBTGҎ(gu)的。DBTGpȝ是典型的三l构体系Q子模式、模式、存储模式。相应的数据定义语言分别UCؓ(f)子模式定义语aSSDDLQ模式定义语aSDDLQ设备介质控制语aDMCL.另外q有数据操纵语言DML?/p>
层次型数据库
层次型数据库理pȝ是紧随网状数据库而出现的。现实世界中很多事物是按层次l织h的。层ơ数据模型的提出Q首先是Z模拟q种按层ơ组lv来的事物。层ơ数据库也是按记录来存取数据的。层ơ数据模型中最基本的数据关pL基本层次关系Q它代表两个记录型之间一对多的关p,也叫做双亲子奛_p(PCRQ?/p>
数据库中有且仅有一个记录型无双ԌUCؓ(f)根节炏V其他记录型有且仅有一个双二Ӏ在层次模型中从一个节点到其双亲的映射是惟一的,所以对每一个记录型Q除根节点外Q只需要指出它的双Ԍ可以表C出层次模型的整体结构。层ơ模型是?wi)状的。最著名最典型的层ơ数据库pȝ是IBM公司的IMSQInformation Management SystemQ,q是IBM公司研制的最早的大型数据库系l程序品。从60q代末生vQ如今已l发展到IMSV6Q提供群集、N路数据共享、消息队列共享等先进Ҏ(gu)的支持。这个具?0q历史的数据库品在如今的WWW应用q接、商务智能应用中扮演着新的角色?/p>
web应用E序或者winform应用E序在存储数据的时候,一般的做法是将数据存放于数据库中,而根据程序的性能要求和实际需求我们可以选择不同cd的数据库Q下面我们就对各U常用数据库的历史和特点加以单的分析和介l?/p>
Access数据?/strong>
国Microsoft公司?994q推出的微机数据库管理系l。它h界面友好、易学易用、开发简单、接口灵zȝ特点Q是典型的新一代桌面数据库理pȝ。其主要特点如下Q?
(1)完善地管理各U数据库对象Q具有强大的数据l织、用L(fng)理、安全检查等功能?
(2)强大的数据处理功能,在一个工作组U别的网l环境中Q用Access开发的多用h据库理pȝh传统的XBASE(DBASE、FoxBASE的统U?数据库系l所无法实现的客h务器(Cient/Server)l构和相应的数据库安全机ӞAccess具备了许多先q的大型数据库管理系l所具备的特征,如事务处?出错回滚能力{?
(3)可以方便地生成各U数据对象,利用存储的数据徏立窗体和报表Q可视性好?/p>
(4)作ؓ(f)Office套g的一部分Q可以与Office集成Q实现无~连接?
(5)能够利用Web索和发布数据Q实CInternet的连接?Access主要适用于中型应用pȝQ或作ؓ(f)客户?服务器系l中的客L(fng)数据库?br />
Informix数据?/strong>
国InfomixSoftware公司研制的关pd数据库管理系l。Informix有Informix-SE和Informix-Online两种版本。Informix-SE适用于UNIX和W(xu)indowsNTq_Q是Z规模的应用而设计的;Informix-Online在UNIX操作pȝ下运行,可以提供多线E服务器Q支持对U多处理器,适用于大型应用?/p>
Informix可以提供面向屏幕的数据输入询问及(qing)面向设计的询问语a报告生成器。数据定义包括定义关pR撤销关系、定义烦引和重新定义索引{。Informix不仅可以建立数据库,q可以方便地重构数据库,pȝ的保护措施十分健全,不仅能数据得到保护而不被权限外的用户存取,且能重新建立丢失了的文g?qing)恢复被破坏了的数据。其文g的大不受磁盘空间的限制Q域的大和记录的长度均可达2K。采用加下标序讉K法,Informix与COBOL软g兼容Qƈ支持C语言E序?Informix可移植性强、兼Ҏ(gu)好Q在很多微型计算机和型Z得到应用Q尤光用于中型企业的h事、仓储及(qing)财务理?
Orcale数据?/strong>
国Orcale公司研制的一U关pd数据库管理系l,是一个协调服务器和用于支持Q务决定型应用E序的开攑֞RDBMS。它可以支持多种不同的硬件和操作pȝq_Q从台式机到大型和超U计机Qؓ(f)各种gl构提供高度的可伸羃性,支持对称多处理器、群集多处理器、大规模处理器等Qƈ提供q泛的国际语a支持?Orcale是一个多用户pȝQ能自动从批处理或在U环境的pȝ故障中恢复运行。系l提供了一个完整的软g开发工具Developer2000Q包括交互式应用E序生成器、报表打印Y件、字处理软g以及(qing)集中式数据字典,用户可以利用q些工具生成自己的应用程序。Orcale以二l表的Ş式表C数据,q提供了SQL(l构式查询语a)Q可完成数据查询、操作、定义和控制{基本数据库理功能。Orcaleh很好的可UL性,通过它的通信功能Q微型计机上的E序可以同小型乃臛_型计机上的OrcaleQƈ且能怺传递数据。另外Orcaleq具有与C语言的接?sh)子表格、图形处理等软g?Orcale属于大型数据库系l,主要适用于大、中型应用pȝQ或作ؓ(f)客户?服务器系l中服务器端的数据库pȝ?/p>
DB2数据?/strong>
IBM公司研制的一U关pd数据库系l。DB2主要应用于大型应用系l,h较好的可伸羃性,可支持从大型机到单用L(fng)境,应用于OS/2、Windows{^C?DB2提供了高层次的数据利用性、完整性、安全性、可恢复性,以及(qing)规模到大规模应用程序的执行能力Q具有与q_无关的基本功能和SQL命o(h)。DB2采用了数据分U技术,能够使大型机数据很方便地下蝲到LAN数据库服务器Q得客h/服务器用户和ZLAN的应用程序可以访问大型机数据Qƈ使数据库本地化及(qing)q程q接透明化?它以拥有一个非常完备的查询优化器而著Uͼ其外部连接改善了查询性能Qƈ支持多Q务ƈ行查询?DB2h很好的网l支持能力,每个子系l可以连接十几万个分布式用户Q可同时ȀzM千个zdU程Q对大型分布式应用系l尤为适用?
SQL Server数据?/strong>
Microsoft公司推出的一U关pd数据库系l。SQLServer是一个可扩展的、高性能的、ؓ(f)分布式客h/服务器计所设计的数据库理pȝQ实C与WindowsNT的有机结合,提供了基于事务的企业U信息管理系l方案?
其主要特点如下:(x)
(1)高性能设计Q可充分利用Windows的优ѝ?
(2)pȝ理先进Q支持Windows囑Ş化管理工P支持本地和远E的pȝ理和配|?
(3)强壮的事务处理功能,采用各种Ҏ(gu)保证数据的完整性?/p>
(4)支持对称多处理器l构、存储过E、ODBCQƈh自主的SQL语言?SQLServer以其内置的数据复制功能、强大的理工具、与Internet的紧密集成和开攄pȝl构为广大的用户、开发h员和pȝ集成商提供了一个出众的数据库^台?/p>
Sybase数据?/strong>
国Sybase公司研制的一U关pd数据库系l,是一U典型的UNIX或Windowsq_上客h/服务器环境下的大型数据库pȝ?Sybase提供了一套应用程序编E接口和库,可以与非Sybase数据源及(qing)服务器集成,允许在多个数据库之间复制数据Q适于创徏多层应用。系l具有完备的触发器、存储过E、规则以?qing)完整性定义,支持优化查询Q具有较好的数据安全性。Sybase通常与SybaseSQLAnywhere用于客户?服务器环境,前者作为服务器数据库,后者ؓ(f)客户机数据库Q采用该公司研制的PowerBuilder为开发工P在我国大中型pȝ中具有广泛的应用。美国Sybase公司研制的一U关pd数据库系l,是一U典型的UNIX或Windowsq_上客h/服务器环境下的大型数据库pȝ?Sybase提供了一套应用程序编E接口和库,可以与非Sybase数据源及(qing)服务器集成,允许在多个数据库之间复制数据Q适于创徏多层应用。系l具有完备的触发器、存储过E、规则以?qing)完整性定义,支持优化查询Q具有较好的数据安全性。Sybase通常与SybaseSQLAnywhere用于客户?服务器环境,前者作为服务器数据库,后者ؓ(f)客户机数据库Q采用该公司研制的PowerBuilder为开发工P在我国大中型pȝ中具有广泛的应用?
FoxPro数据?/strong>
最初由国Fox公司1988q推出,1992qFox公司被Microsoft公司收购后,相推出了FoxPro2.5?.6和VisualFoxPro{版本,其功能和性能有了较大的提高?FoxPro2.5?.6分ؓ(f)DOS和W(xu)indows两种版本Q分别运行于DOS和W(xu)indows环境下。FoxPro比FoxBASE在功能和性能上又有了很大的改q,主要是引入了H口、按U、列表框和文本框{控Ӟq一步提高了pȝ的开发能力?/p>
_stdcall ?_cdecl 的区?br />几乎我们写的每一个WINDOWS API函数都是__stdcallcd的,首先Q需要了解两者之间的区别Q?WINDOWS的函数调用时需要用到栈QSTACKQ一U先入后出的存储l构Q。当函数调用完成后,栈需要清除,q里是问题的关键,如何清除Q?如果我们的函C用了_cdeclQ那么栈的清除工作是p用者,用COM的术语来讲就是客h完成的。这样带来了一个棘手的问题Q不同的~译器生栈的方式不相同,那么调用者能否正常的完成清除工作呢?{案是不能。如果用__stdcallQ上面的问题p决了Q函数自px除工作。所以,在跨Q开发)q_的调用中Q我们都使用__stdcallQ虽然有时是以WINAPI的样子出玎ͼ。那么ؓ(f)什么还需要_cdecl呢?当我们遇到这L(fng)函数如fprintf()它的参数是可变的Q不定长的,被调用者事先无法知道参数的长度Q事后的清除工作也无法正常的q行Q因此,q种情况我们只能使用_cdecl。到q里我们有一个结论,如果你的E序中没有涉?qing)可变参敎ͼ最好用__stdcall关键字?br />
另:(x)
_cdecl
按从双左的序压参数入栈,p用者把参数弹出栈。对于“C”函数或者变量,修饰名是在函数名前加下划Uѝ对于“C++”函敎ͼ有所不同?br />如函数void test(void)的修饰名是_testQ对于不属于一个类的“C++”全局函数Q修饰名?a href="mailto:?test@@ZAXXZ">?test@@ZAXXZ?br />q是MFC~省调用U定。由于是调用者负责把参数弹出栈,所以可以给函数定义个数不定的参敎ͼ如printf函数?/p>
stdcall 和pascal一?都是pascal的调用习(fn)?br />按从双左的序压参数入栈,p调用者把参数弹出栈。对于“C”函数或者变量,修饰名以下划Uؓ(f)前缀Q然后是函数名,然后是符号“@”及(qing)参数的字节数Q如函数int func(int a, double b)的修饰名?a href="mailto:_func@12">_func@12。对于“C++”函敎ͼ则有所不同?/p>
有mQm?Q个球,Cؓ(f)q1、q2、…、qmQ其中有且仅有一个坏球,光量与其他的不同,C用无砝码的天q行称量,令n为称量次敎ͼ问:(x)能确保找到坏球ƈ指出它与好球的轻重关pȝn的最值是多少Q?/font>
先来看理Z要多次。每ơ称量有左边轅R^衡和双d3U可能的情况Q而坏球的可能l果有q1轅Rq1重、q2轅Rq2重、…、qm轅Rqm重等?mU。因此,Ҏ(gu)商农的信息论Q此问题的熵是需要的U量ơ数Q又因ؓ(f)n是整敎ͼ所以有Q?img alt="" hspace="0" src="http://blog.vckbase.com/images/vckbase_com/localvar/701/o_ball-01.gif" border="0" />
不过理论l归是理论,直接拿到现实生活中往往行不通。一个很单的情况Q?个球Q上面的公式?ơ称量就够了。但你可以想惛_法,反正我是没找Cơ解决问题的Ҏ(gu)?
那,是理论错了吗Q唔Q我可不敢怀疑商农,我只敢怀疑我自己。来看看我们错在哪了吧。对4个球的情况,W一ơ称量只有两个可选的Ҏ(gu)Q方?Qq1攑ַ盘,q2攑֏盘。若不^衡(׃对称性,只分析左边轻的情况,下同Q,则可能的l果q剩q1dq2重,再称一ơ就能找到坏球;若^衡,则可能的l果q剩q3轅Rq3重、q4dq4?个,再套用一下商农的定理Q此时还要称ơ。所以方?被否冟뀂方?Qq1、q2攑ַ盘,q3、q4攑֏盘。此时天q定不?x)^衡,U量后,可能的结果有q1轅Rq2轅Rq3重和q4?个。同L(fng)道理Q方?也难逃被否决的命q?/font>
?个球q么单的情况下就撞得满头是包Q未免让人难以接受,ȝ一下经验教训吧Q把上面的分析归U一下ƈ推广C般情况,是Q整个称量过E中Q要辑ֈ目的Q倒数Wkơ称量前的可能结果数hQ必Lx件h?k?/font>
上面的得出的l论虽然不能让我们找到问题的{案Q但却有助于我们定每次U量的方案,特别是第一ơ如何做。假设我们计划的U量ơ数是nQ第一ơ在左右两盘中各放x个球Q则保证下面两个不等式同时成立是解决问题的必要条Ӟ(x)
2(m-2x)?n-1 Q^衡时Q?/font>
2x?n-1 Q不qӞ
把这两个不等式稍加变换,成了下面的样子Q?/font>
注意到x是整敎ͼ3n-1是奇敎ͼ2m是偶敎ͼ所以上面的不等式等价于Q?/font>
昄Q在n一定的情况下,m大Qx的取D围越,而当x只能取?img alt="" hspace="0" src="http://blog.vckbase.com/images/vckbase_com/localvar/701/o_ball-05.gif" border="0" />Ӟml箋增大Q就?x)导致nơ称量找到坏球的计划破。籍此,可以得出在n一定的情况下m的取D_(d)(x)。发C吗?现在m的最大值正好比我们最初的l果了1。同时此l果也与前面提到?个球的实际情늛W?/font>
但分析了半天Q我们只证明了m不在取D围内Ӟnơ称量不能确保找到坏球。那m在取D围内的时候,肯定能找到吗Q答案是肯定的,不过马上证明它有炚wQ先来看两个单一点的命题?/font>
命题1Q有A、B两组球,球的个数分别为a、bQ且0≤b-a?Q已知这些球中有且仅有一个坏球,若它在Al中Q则比正常球轻,在Bl中则比正常球重。另有一个好球。先使用无砝码的天^U量Qo(h)Q则可以扑ֈ一个称量方案,使得最多经qnơ称量,可以找到坏球(此时肯定能指出它与好球的重量关系Q?/font>
使用数学归纳法证明如下:(x)
①当n=1Ӟa、b的取值可能有{0Q?}、{1Q?}、{1Q?}三组Q由于还有一个已知的好球Q所以不N证此时命题成立?br /> ②假讑ֽn=k时命题也成立?br /> ③当n=k+1时。我们将A、B两组球分别尽量^均得分ؓ(f)三组Q记为A1、A2、A3、B1、B2和B3。不影响一般性,假设q六l球按球C到多的排列ơ序也与前面的顺序一_(d)且A1有球a1个。则W一ơ称量时的称量方案与每组球个数的对应关系如下Q其中需要注意的是:(x)在带蓝色的两U情况下Q必?img alt="" hspace="0" src="http://blog.vckbase.com/images/vckbase_com/localvar/701/o_ball-08.gif" border="0" />Q否则就与命题的前提不符了?/font>
A1 | A2 | A3 | B1 | B2 | B3 | U量Ҏ(gu) |
a1 | a1 | a1 | a1 | a1 | a1 | A1、B1攑ַ盘;A2、B2攑֏? |
a1 | a1 | a1 | a1 | a1 | a1+1 | A1、B1攑ַ盘;A2、B2攑֏? |
a1 | a1 | a1+1 | a1 | a1 | a1+1 | A1、B3攑ַ盘;A3、B1攑֏? |
a1 | a1 | a1+1 | a1 | a1+1 | a1+1 | A1、B2攑ַ盘;A2、B3攑֏? |
a1 | a1+1 | a1+1 | a1 | a1+1 | a1+1 | A2、B2攑ַ盘;A3、B3攑֏? |
a1 | a1+1 | a1+1 | a1+1 | a1+1 | a1+1 | A2、B2攑ַ盘;A3、B3攑֏?/font> |
很明显,不管l果是什么,W一ơ称量之后,问题都能转化为n=k时的情Ş。所以,命题1是真命题?/font>
前面已经证明Ӟnơ称量无法确保找到坏球ƈ指出其轻重关pR但如果此时也有一个已知的好球的话Q答案就不一样了Q这时nơ称量就已经_Q命?Q。仍使用数学归纳法?/font>
①当n=2Ӟm=4Q验证一下可知命题成立。?br /> ②假讑ֽn=k时命题也成立。?br /> ③当n=k+1时。我们把q些球尽量^均的分成三组Q则每组球的个数分别为:(x)?img alt="" hspace="0" src="http://blog.vckbase.com/images/vckbase_com/localvar/701/o_ball-10.gif" border="0" />?img alt="" hspace="0" src="http://blog.vckbase.com/images/vckbase_com/localvar/701/o_ball-11.gif" border="0" />。第一ơ称量时Q第一l和那个好球攑ַ盘,W三l放右盘。若qQ问题{化ؓ(f)n=k时的情ŞQ不qQ问题{化ؓ(f)命题1的情形。命题成立?
有了前面两个证明作基Q最初的问题很单了Q再ơ祭出数据学归纳法。由于m<5时的情况有些Ҏ(gu)(考虑只有一个球或两个球的情?Q不能作为递推得依据,所以我们从n=3Q也是m=5开始?/font>
①当n=3Ӟm??2之间Q?3的情况已l被排除在外Q,通过一一验证可知命题成立。?br /> ②假讑ֽn=k时命题也成立。?br /> ③当n=k+1Ӟ扑ֈ一个满不{式的xQ在天^左右两盘中各放x个球。如果天q_^衡,问题转化为n=k时的情Ş或命?中的情ŞQ不qQ则转化为命?的情形。命题成立?/font>
lg所qͼU球问题的完整答案是Q当球数Ӟnơ称量时p保扑ֈ坏球Qƈ指出它与好球的轻重关p;当球?img alt="" hspace="0" src="http://blog.vckbase.com/images/vckbase_com/localvar/701/o_ball-09.gif" border="0" />Ӟnơ称量只能确保找到坏球,而无法指出它与好球的轻重关系。要x重关p,可能需要多q行一ơ称量。但如果此时再有一个好球,又可以把这ơ称量省掉了?