2011年7月29日

C/C++笔试题 (三)【转】

摘要: 1、写一个“标准”宏,这个宏输入两个参数并返回较小的一个。.#define Min(X, Y) ((X)>(Y)?(Y):(X))//结尾没有;2、嵌入式系统中经常要用到无限循环,你怎么用C编写死循环。while(1){}或者for(;;)3、关键字static的作用是什么?定义静态变量4、关键字const有什么含意?表示常量不可以修改的变量。5、关键字volatile有什么含意?并举出三个不同的例子?提示编译器对象的值可能在编译器未监测到的情况下改变。int (*s[10])(int) 表示的是什么啊int (*s[10])(int) 函数指针数组,每个指针指向一个int func(i 阅读全文

posted @ 2011-07-29 23:01 xuangong 阅读(499) 评论(0) 推荐(0) 编辑

C/C++笔试题 (二)【转】

摘要: 12 . 下面的代码输出是什么,为什么?void foo(void){ unsigned int a = 6; int b = -20; (a+b > 6) ? puts("> 6") : puts("<= 6");}这个问题测试你是否懂得C语言中的整数自动转换原则,我发现有些开发者懂得极少这些东西。不管如何,这无符号整型问题的答案是输出是 ">6"。原因是当表达式中存在有符号类型和无符号类型时所有的操作数都自动转换为无符号类型。因此-20变成了一个非常大的正整数,所以该表达式计算出的结果大于6。这一点对于应当 阅读全文

posted @ 2011-07-29 22:59 xuangong 阅读(440) 评论(0) 推荐(0) 编辑

C/C++笔试题 (一)【转】

摘要: 1.static有什么用途?(请至少说明两种) 1)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。 2) 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。 3) 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用2.引用与指针有什么区别? 1) 引用必须被初始化,指针不必。 2) 引用初始化以后不能被改变,指针可以改变所指的对象。 3) 不存在指向空值的引用,但是存在指向空值的指针。3.描述实时系统的基本特性 在特定时间内完成特定 阅读全文

posted @ 2011-07-29 22:56 xuangong 阅读(235) 评论(0) 推荐(0) 编辑

学习C/C++的经验谈(转)

摘要: 今日看到这篇文章,感觉不错,比较有启发意义。 工作已经有三年半,算上学校里的时间,大约已有7年的C语言和5年的C++使用经验;熟练使用C/C++也有3年以上;现在的我自认为是可以称得上精通C/C++,基本现在市面上广泛被推崇的经典书籍,如:《C++ Primer》、《高级C++编程技术》、《STL原码剖析》、《Effective C++》、《C编程陷阱》、《Thinking in C++》等等,这些书只有《高级C++编程技术》和《C编程陷阱》在早些时候是通篇看完的(也是因为它们都比较薄),其它的现在基本上都已经不能启发我了,这些书虽然内容各不相同,但针对的读者水平是一样的,应该是已经学会编程. 阅读全文

posted @ 2011-07-29 22:44 xuangong 阅读(397) 评论(0) 推荐(0) 编辑

C语言 printf格式控制符 完全解析

摘要: printf的格式控制的完整格式:% - 0 m.n l或h 格式字符下面对组成格式说明的各项加以说明:①%:表示格式说明的起始符号,不可缺少。②-:有-表示左对齐输出,如省略表示右对齐输出。③0:有0表示指定空位填0,如省略表示指定空位不填。④m.n:m指域宽,即对应的输出项在输出设备上所占的字符数。N指精度。用于说明输出的实型数的小数位数。为指定n时,隐含的精度为n=6位。⑤l或h:l对整型指long型,对实型指double型。h用于将整型的格式字符修正为short型。---------------------------------------格式字符格式字符用以指定输出项的数据类型和输 阅读全文

posted @ 2011-07-29 22:36 xuangong 阅读(7737) 评论(0) 推荐(0) 编辑

C++内存管理详解(转)

摘要: 这篇文章实际上还是不错的,不过我更建议大家看Exceptional c++,上面有部分专门讲这个的。而且这篇文章中说内存分配的方式有三种,是不准确的。malloc分配的位于堆上,而new的被称为自由储存区。两者不可混用,比如说malloc的内存绝对不能用delete来释放。 因此建议大家看EPC ,不过这篇文章有些东西还是可以了解下的,不能一棍子把人打死了。 程序员们经常编写内存管理程序,往往提心吊胆。如果不想触雷,唯一的解决办法就是发现所有潜伏的地雷并且排除它们,躲是躲不了的。本文的内容比一般教科书的要深入得多,读者需细心阅读,做到真正地通晓内存管理。 1、内存分配方式 内存分配方式有三种. 阅读全文

posted @ 2011-07-29 22:27 xuangong 阅读(338) 评论(0) 推荐(0) 编辑

让我们习惯在底层用C++宏生成代码 (转)

摘要: 我们知道使用C++泛型编程可以写出扩展性非常强的程序,使用C++的接口技术也可以很容易的扩展出已经存在的程序。只不过有一件事情它们可都做不到,那就是使用宏来产生代码。使用宏来生成代码通常对于库作者和底层架构者具有非凡的意义,而在应用层个人认为应该尽量减少它的使用,当然,这并不影响我们去学习并了解它。 那么什么叫“使用宏来产生代码”呢? 首先我提出如下的需求:我现在需要一个函数JoinString,它能接受1到20个不等的参数,并将每一个参数转换成字符串,最后在函数内部把这些字符串拼接起来然后作为一个字符串返回。类似于这样:stringJoinString( 参数列表... ) { 转换 返回参 阅读全文

posted @ 2011-07-29 11:22 xuangong 阅读(1620) 评论(1) 推荐(1) 编辑

【转】 Source Insight设置

摘要: 转载自chenjun_dzlt1、背景色选择 要改变背景色Options->preference->windows background->color设置背景色2、解决字符等宽对齐问题。 SIS默认字体是VERDANA,很漂亮。这网页上应该也是用的VERDANA字体。但由于美观的缘故,VERDANA字体是不等宽的。比如下面两行 llllllllll MMMMMMMMMM 同样10个字符,长度差多了.用VERDANA来看程序,有些本应该对齐的就歪了。解放方法是使用等宽的字体,但肯定比较丑。比较推荐的是用Courier New。3、解决TAB键缩进问题 Options-> 阅读全文

posted @ 2011-07-29 10:44 xuangong 阅读(11412) 评论(2) 推荐(0) 编辑

导航