易截截图软件、单文件、免安装、纯绿色、仅160KB

考查嵌入式C开发人员最好的十道题参考答案

详细参考答案
第1题:   (b)
volatile字面意思是易于挥发的。这个关键字来描述一个变量时,意味着 给该变量赋值(写入)之后,马上再读取,写入的值与读取的值可能不一样,所以说它"容易挥发"的。
这是因为这个变量可能一个寄存器,直接与外部设备相连,你写入之后,该寄存器也有可能被外部设备的写操作所改变;或者,该变量被一个中断程序,或另一个进程
改变了.
volatile 不会被编译器优化影响,在longjump 后,它的值 是后面假定的变量值,b最后的值是5,所以5被打印出来.
setjmp : 设置非局部跳转 /* setjmp.h*/
Stores context information such as register values so that the lomgjmp function can return control to the statement following the one calling setjmp.Returns 0 when it is initially called.
Lonjjmp: 执行一个非局部跳转 /* setjmp.h*/
Transfers control to the statement where the call to setjmp (which initialized buf) was made. Execution continues at this point as if longjmp cannot return the value 0.A nonvolatile automatic variable might be changed by a call to longjmp.When you use setjmp and longjmp, the only automatic variables guaranteed to remain valid are those declared volatile.
Note: Test program without volatile qualifier (result may very)
更详细介绍,请参阅 C语言的setjmp和longjmp
第2题:   (a)
结构题的成员在内存中的地址是按照他们定义的位置顺序依次增长的。如果一个结构体的指针被看成 它的第一个成员的指针,那么该指针的确指向第一个成员
第3题:  (a)
此题目较难.
这个程序的非递归版本
int  what ( int x , int  n)
{
  int val;
  int product;
  product =1;
  val =x;
  while(n>0)
  {
     if (n%2 == 1)
       product = product*val;   /*如果是奇数次幂,  x(val)要先乘上一次,;  偶数次幂,最后返回时才会到这里乘以1*/
     val = val* val;
     n = n/2;
   }
   return product;
}/* 用二元复乘策略 */
算法描述
(while n>0)
{
  if  next most significant binary digit of  n( power)&n


相关文档:

用C写的3D迷宫

          Boss说,要看OpenGL,看了快一个月,总算出了个像样的东西,用C写了个3D迷宫,
虽然只有350行
       代码,不过边学边写,足足写了一周时间,还是小有成就感的,活活活!
         &n ......

AES/DES c加解密收藏

#1楼 得分:0回复于:2009-12-26 15:37:26
加密有很多种方法.同时C#也提供了很多加密方法.你需要加密和解密在加密算法上需要使用对称加密.我给你提供一个简单的算法.在保存的时候可以使用二进制的方式来保存到文件.
C# code
using System;
using System.IO;
using System.Text;
using System.Security.Cryptography ......

C++与C进行相互函数调用,extern关键词的妙用

   extern除了能够用于声明变量,已经在外部被定义,不用重新定义和分配内存空间,还可以在C++与C进行相互函数调用方面会有很大的用处。
   首先,我们来看一下,为什么C++和C语言不能相互进行函数调用:
   编写如下的源文件:
   int func(int i)
{
return 1;
}
&nbs ......

c获取文件的大小和文件属性、文件查找

1 fseek移动指针获取
#include <stdio.h>
#include <stdlib.h>
long filesize( FILE *fp )
{
    long int save_pos;
    long size_of_file;
    /* Save the current position. */
    save_pos = ftell( fp );
    /* ......

C/S结构Web化,破除ERP分布模式瓶颈

2009年,经济危机笼罩下的中国管理软件行业,与往年相比静默了许多。不久前,SAP中国研究院总裁芮祥麟批评国产软件技术还停留在10年前客户端(Clien/Server)架构水平,引发业界一场大论战。那么中国管理软件技术是否真的已经落后?
  C/S应用仍有优势
  那么中国管理软件技术是否已经落后?
  C/S结构程序与B/S(Web) ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号