文章分类 -  C/C++

摘要:我相信,这可能是很多朋友的问题,我以前也有这样的感觉,编程编到一定的时候,发现能力到了瓶颈,既不深,也不扎实,半吊子。比如:你长期地使用Java和.NET ,这些有虚拟机的语言对于开发便利是便利,但是对于程序员来说可能并不太好,原因有两个:虚拟机屏蔽了操作系统的系统调用,以及很多底层机制。大量的封装好的类库也屏蔽了很多实现细节。一段时间后,你会发现你知其然,不知所以然。。我以前在CSDN上写过一篇《Java NIO类库Selector机制解析(上,下,续)》,在那篇文章中我说提到过(有讥讽的语气)Java的程序员不懂底层实现,所以很难把技术学得更扎实。此时,一部分程序员会不自然地想学学底层的技 阅读全文
posted @ 2012-04-28 10:32 luckc# 阅读(153) 评论(0) 推荐(0)
摘要:C 语言常常让人觉得它所能表达的东西非常有限。它不具有类似第一级函数和模式匹配这样的高级功能。但是C非常简单,并且仍然有一些非常有用的语法技巧和功能,只是没有多少人知道罢了。 指定的初始化 很多人都知道像这样来静态地初始化数组: int fibs[] = {1, 1, 2, 3, 5}; C99标准实际上支持一种更为直观简单的方式来初始化各种不同的集合类数据(如:结构体,联合体和数组)。 数组 我们可以指定数组的元素来进行初始化。这非常有用,特别是当我们需要根据一组#define 来保持某种映射关系的同步更新时。来看看一组错误码的定义,如: /* Entries may not c... 阅读全文
posted @ 2012-04-24 12:38 luckc# 阅读(191) 评论(0) 推荐(0)
摘要:文章内容如下:首先,我们先来看下面这个经典的代码:intmain() { inta=42; printf(“%d\n”,a); } 从这段代码里你看到了什么问题?我们都知道,这段程序里少了一个#include <stdio.h> 还少了一个return 0;的返回语句。不过,让我们来深入的学习一下,这段代码在C++下无法编译,因为C++需要明确声明函数这段代码在C的编译器下会编译通过,因为在编译期,编译器会生成一个printf的函数定义,并生成.o文件,链接时,会找到标准的链接库,所以能编译通过。但是,你知道这段程序的退出码吗?在ANSI-C下,退出码是一些未定义的垃圾数。但在C8 阅读全文
posted @ 2012-04-24 09:55 luckc# 阅读(160) 评论(0) 推荐(0)
摘要:文章很有意思,分享给大家。我相信这样的bug,就算你是高手你也会犯的。你来看看作者犯的这个Bug吧。。首先,作者想用一段程序来创建一个文件,如果有文件名的话,就创建真正的文件,如果没有的话,就调用tmpfile()?创建临时文件。他这段程序就是HTTP下载的C程序。code==200就是HTTP的返回码。elseif(code==200){//Downloadingwholefile /*Writenewfile(plusallowreadingoncewefinish)*/ g=fname?fopen(fname,"w+"):tmpfile(); }但是这个程序,只能在U 阅读全文
posted @ 2012-04-24 09:07 luckc# 阅读(373) 评论(0) 推荐(0)
摘要:简介本文是为了满足开发人员的需要而写的。我们总结了一套指南,无论作为开发人员还是顾问,这些指南多年来一直都很好地指导着我们,我们把它们作为建议提供给您,希望对您的工作有所帮助。您也许不赞同其中的某些指南,但我们希望您会喜欢其中的一些并在您的编程或移植项目中使用它们。回页首风格与指南使用一种使代码具有可读性和一致性的源代码风格。如果没有团队代码风格或自己的风格,您可以使用与大多数 C 程序员采用的 Kernighan 和 Ritchie 风格相似的风格。然而,举一个极端的例子,有可能最终会写出与下面相似的代码: int i;main(){for(;i["]<i;++i){--i; 阅读全文
posted @ 2012-04-23 10:19 luckc# 阅读(142) 评论(0) 推荐(0)
摘要:基础知识SpiderMonkey 简介和其他的 JavaScript 引擎一样,SpiderMonkey 不直接提供像 DOM 这样的对象,而是提供解析,执行 JavaSccript 代码,垃圾回收等机制。SpidlerMonkey 是一个在 Mozilla 之下的开源项目,要使用 SpiderMonkey,需要下载其源码,然后编译为静态 / 动态库使用。要在自己的应用程序中使用 SpiderMonkey,首先需要了解以下三个核心概念:运行时环境运行时环境是所有 JavaScript 变量,对象,脚本以及代码的上下文所存在的空间。每一个上下文对象,以及所有的对象均存在于此。一般应用仅需要一个运 阅读全文
posted @ 2012-04-23 10:14 luckc# 阅读(304) 评论(0) 推荐(0)
摘要:一、简介Python是一门功能强大的高级脚本语言,它的强大不仅表现在其自身的功能上,而且还表现在其良好的可扩展性上,正因如此,Python已经开始受到越来越多人的青睐,并且被屡屡成功地应用于各类大型软件系统的开发过程中。与其它普通脚本语言有所不同,Python程序员可以借助Python语言提供的API,使用C或者C++来对Python进行功能性扩展,从而即可以利用Python方便灵活的语法和功能,又可以获得与C或者C++几乎相同的执行性能。执行速度慢是几乎所有脚本语言都具有的共性,也是倍受人们指责的一个重要因素,Python则通过与C语言的有机结合巧妙地解决了这一问题,从而使脚本语言的应用范围 阅读全文
posted @ 2012-04-23 10:12 luckc# 阅读(214) 评论(0) 推荐(0)
摘要:1988 年 11 月,许多组织不得不因为“Morris 蠕虫”而切断 Internet 连接,“Morris 蠕虫”是 23 岁的程序员 Robert Tappan Morris 编写的用于攻击 VAX 和 Sun 机器的程序。 据有关方面估计,这个程序大约使得整个 Internet 的 10% 崩溃。 2001 年 7 月,另一个名为“Code Red”的蠕虫病毒最终导致了全球运行微软的 IIS Web Server 的 300,000 多台计算机受到攻击。2003 年 1 月,“Slammer”(也称为“Sapphire”)蠕虫利用 Microsoft SQL Server 2000 中 阅读全文
posted @ 2012-04-23 10:11 luckc# 阅读(586) 评论(0) 推荐(0)
摘要:前言:关于多态,关于 C多态 (polymorphism) 一词最初来源于希腊语 polumorphos,含义是具有多种形式或形态的情形。在程序设计领域,一个广泛认可的定义是“一种将不同的特殊行为和单个泛化记号相关联的能力”。然而在人们的直观感觉中,多态的含义大约等同于“同一个方法对于不同类型的输入参数均能做出正确的处理过程,并给出人们所期望获得的结果”,也许这正体现了人们对于多态性所能达到的效果所寄予的期望:使程序能够做到越来越智能化,越来越易于使用,越来越能够使设计者透过形形色色的表象看到代码所要触及到的问题本质。作为读者的你或许对于面向对象编程已有着精深的见解,或许对于多态的方便与神奇你 阅读全文
posted @ 2012-04-23 09:59 luckc# 阅读(143) 评论(0) 推荐(0)