
C/C++
innerpease
这个作者很懒,什么都没留下…
展开
-
嵌入式经典面试题(转)
C语言测试是招聘嵌入式系统程序员过程中必须而且有效的方法。这些年,我既参加也组织了许多这种测试,在这过程中我意识到这些测试能为面试者和被面试者提供许多有用信息,此外,撇开面试的压力不谈,这种测试也是相当有趣的。 从被面试者的角度来讲,你能了解许多关于出题者或监考者的情况。这个测试只是出题者为显示其对ANSI标准细节的知识而不是技术技巧而设计吗?这是个愚蠢的问题吗?如要你答出某个字符的ASC转载 2012-03-30 10:40:04 · 331 阅读 · 0 评论 -
VS2008编译错误, error C2664: cannot convert parameter 1 from 'const char [27]' to 'LPCT
1> error C2664: 'sprintf' : cannot convert parameter 1 from 'const char [27]' to 'LPCTSTR'1> Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast转载 2012-06-15 19:33:31 · 3617 阅读 · 1 评论 -
ptr = (char *)malloc(0)
char *ptr;if ((ptr = (char *)malloc(0)) == NULL) puts( "Got a null pointer "); else puts( "Got a valid pointer "); 上面程序在VC6.0下输出结果是:Got a valid pointer 请转载 2012-09-11 09:48:29 · 2153 阅读 · 0 评论 -
为什么中断处理函数中不能使用printf语句
一个ISR应该避免调用不可重入函数。一些标准库函数是不可重入的,如经常实现的malloc和printf。因为中断可能发生在执行任务中,因为任务可能是在“malloc”的函数调用中,如果ISR调用此相同的不可重入函数,由此产生的行为可能是灾难性的。不可重入函数是指这样的一类函数,不可以在它还没有返回就再次被调用。例如printf,malloc,free等都是不可重入函数。因为信号可能在任何时转载 2012-09-11 09:22:36 · 7975 阅读 · 4 评论 -
c语言中unsigned int和int的区别
void foo(void) { unsigned int a = 6; int b = -20; (a+b > 6) ? puts("> 6") : puts(" } 这个问题测试你是否懂得C语言中的整数自动转换原则,我发现有些开发者懂得极少这些东西。不管如何,这无符号整型问题的答案是输出是 ">6"。原因是当表达式中存在有符号类型和无符号类型时所有的操转载 2012-09-11 09:31:33 · 10073 阅读 · 0 评论 -
变量的声明与定义以及区别
ANSI C规定:变量必须“先定义、后使用”,因此当用C定义变量时,不仅需要指定变量名,而且还必须告诉编译器其存储的数据类型,变量类型告诉编译器应该在内存中为变量名分配多大的存储单元,用来存放相应变量的值(变量值),而变量仅仅是存储单元的别名,供变量使用的最小存储单元是字节(Byte)。由此可见,每个变量都占据一个特定的位置,每个存储单元的位置都由“地址”唯一确定并引用,就像一条街道上的房子由转载 2012-09-12 10:16:20 · 1074 阅读 · 0 评论 -
在VS2008环境编译C程序
现在微软的基于.NET的开发软件已经更新至Visual Studio 2010(VS2010) 但是VS2010版本还不是最完善,所以目前为止,最流行的还是Visual Studio 2008(内部代号VC9.0,以下简称VS2008)。大家接触VS2008一般都是从C#或者VB语言开始的,其实VS2008作为一款集成度很高的编译软件,其本身也是支持C语言的。大家可以用它来进行C语言的编译。相较于转载 2012-09-12 10:54:58 · 1387 阅读 · 0 评论