
编程
IanChoi
这个作者很懒,什么都没留下…
展开
-
C语言嵌套注释
《C陷阱与缺陷》中有一个有意思的问题:“某些C编译器允许嵌套注释。请写一个测试程序,要求:无论是对允许嵌套注释的编译器,还是对不允许嵌套注释的编译器,该程序都能正常通过编译(无错误消息出现),但是这两种情况下程序执行的结果却不相同。 (提示:在用引号括起来的字符串中,注释符I*属于字符串的一部分,而在注释中出现的双引号””又属于注释的一部分。)” 我觉得这对转载 2011-06-07 19:40:00 · 1529 阅读 · 0 评论 -
C语言测试:想成为嵌入式程序员应知道的0x10个基本问题
英文原文见:http://www.embedded.com/2000/0005/0005feat2.htm 英文标题:A 'C' Test: The 0x10 Best Questions for Would-be Embedded Programmers作者:Nigel Jones 各位,拿出铅笔。这个测试将分辩出你是否有潜力成为一个嵌入式程序员,或者你是不是一个有转载 2011-11-21 18:32:48 · 911 阅读 · 0 评论 -
c++中构造函数初始化的方法以及主要区别
一、我的问题是关于初始化C++类成员的。我见过许多这样的代码: CSomeClass::CSomeClass() { x=0; y=1; } 而在别的什么地方则写成下面的样子: CSomeClass::CSomeClass() : x(0), y(1) { } 我的一些程序员朋友说第二种方法比较好,但他们都不知道为什么转载 2011-10-29 23:29:21 · 35686 阅读 · 5 评论 -
静态类成员小结
类中的静态成员真是个让人爱恨交加的特性。我决定好好总结一下静态类成员的知识点,以便自己在以后面试中,在此类问题上不在被动。静态类成员包括静态数据成员和静态函数成员两部分。 一 静态数据成员: 类体中的数据成员的声明前加上static关键字,该数据成员就成为了该类的静态数据成员。和其他数据成员一样,静态数据成员也遵守public/protected/private访问规则。同转载 2011-10-30 00:02:11 · 964 阅读 · 0 评论 -
关于#pragma warning 及warning4786
1. #pragma warning只对当前文件有效(对于.h,对包含它的cpp也是有效的),而不是对整个工程的所有文件有效。当该文件编译结束,设置也就失去作用。2. #pragma warning(push)存储当前报警设置。#pra转载 2011-09-22 16:10:34 · 1189 阅读 · 0 评论 -
为什么Lisp语言如此先进?
一、如果我们把流行的编程语言,以这样的顺序排列:Java、Perl、Python、Ruby。你会发现,排在越后面的语言,越像Lisp。Python模仿Lisp,甚至把许多Lisp黑客认为属于设计错误的功能,也一起模仿了。至于Ruby,如果回到1975年,你声称它是一种Lisp方言转载 2011-08-16 15:57:45 · 657 阅读 · 0 评论 -
VC6.0 不能 添加 和 打开文件 问题
VC6与VISIO2007的冲突,导至VC6.0中的打开文件和添加文件到工程会导致异常或点了没反应2010-03-08 14:46如果机子上装了Visio2007,在VC6.0中的“FileView”右键点“add files to folder”或者在Project菜单点Add转载 2011-07-27 14:26:54 · 1552 阅读 · 1 评论 -
右左法则----复杂指针解析
因为C语言所有复杂的指针声明,都是由各种声明嵌套构成的。如何解读复杂指针声明呢?右左法则是一个既著名又常用的方法。不过,右左法则其实并不是C标准里面的内容,它是从C标准的声明规定中归纳出来的方法。C标准的声明规则,是用来解决如何创建声明的,而右左法则是用来解决如何辩识一个声明的,两者可以说是相反的。右左法则的英文原文是这样说的:The right-left rule: Start reading the declaration from the innermost parentheses, go right转载 2011-04-29 12:20:00 · 853 阅读 · 0 评论 -
NET4.0新特性动态语言
dynamic元类型 C# 4.0将通过新的元类型"dynamic"来添加对后期绑定的支持。任何直接声明为这种类型的变量,或者从函数中返回这种类型的值,都将自动地视为后期绑定。这类似于在Visual Basic中把变量声明为"object",不过它现在可以支持任何类型系统了,不仅仅是CTS(通用类型规范)和COM。 一个重要之处是,这个特性的目标就是为了支持后期绑定,以及更多地为了支持近来转载 2011-06-09 16:44:00 · 4078 阅读 · 0 评论 -
设计模式的形象比喻
1、ABSTRACT FACTORY—追MM少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西,虽然口味有所不同,但不管你带MM去麦当劳或肯德基,只管向服务员说“来四个鸡翅”就行了。麦当劳和肯德基就是生产鸡翅的Factory 工厂模式:客户类和工厂类分开。消费者任何时候需要某种产品,只需向工厂请求即可。消费者无须修改就可以接纳新产品。缺点是当产品修改时,工厂类也要做相应的修改。如转载 2011-06-11 20:21:00 · 583 阅读 · 0 评论 -
空类大小
1、为何空类的大小不是0呢?为了确保两个不同对象的地址不同,必须如此。类的实例化是在内存中分配一块地址,每个实例在内存中都有独一无二的二地址。同样,空类也会实例化,所以编译器会给空类隐含的添加一个字节,这样空类实例化后就有独一无二的地址了。所以,空类的sizeof为1,而不是0.2、请看下面的类:class A{ virtual void f(){} };class B:public A{}此时,类A和类B都不是空类,其sizeof都是4,因为它们都具有虚函数表的地址。3、请看:class A{};clas转载 2011-04-20 13:56:00 · 9996 阅读 · 0 评论 -
浅谈C++中内存分配、函数调用和返回值问题
在谈述函数调用和返回值问题之前,先来看看C++中内存分配的问题。C++编译器将计算机内存分为代码区和数据区,很显然,代码区就是存放程序代码,而数据区则是存放程序编译和执行过程出现的变量和常量。数据区又分为静态数据区、动态数据区以及常量区,动态数据区包括堆区和栈区。一下是各个区的作用:(1)代码区:存放程序代码;(2)数据区 a.静态数据区: 在编译器进行编译的时候就转载 2011-11-06 13:58:50 · 2117 阅读 · 1 评论