Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4521749
  • 博文数量: 1148
  • 博客积分: 25453
  • 博客等级: 上将
  • 技术积分: 11949
  • 用 户 组: 普通用户
  • 注册时间: 2010-05-06 21:14
文章分类

全部博文(1148)

文章存档

2012年(15)

2011年(1078)

2010年(58)

分类: C/C++

2011-05-09 10:02:24

1. 除非你显式的初始化自动变量,否则他不会被自动初始化

2.如果没有初始化,那么它的初值 是 先前占有分配给它的空间的 任意值。不要指望这个值是 0。

  1. #include <stdio.h>

  2. int main(void)
  3. {
  4.     int repid;   //没有初始化
  5.     int repid1;

  6.     printf("repid = %d\n",repid);
  7.     printf("repid1 = %d\n",repid1);

  8.     return 0;
  9. }

  1. ywx@yuweixian:~/yu/c/12-1-4$ ./main
  2. repid = 2527220
  3. repid1 = 134513691


3 . { }作用域及生存周期


   自动存储时期意味着在程序进入包含 变量声明的代码块时,变量开始存在。在程序离开这个代码块时,自动变量消失了。它占用的内存可以用来做其他事情。

  1. #include <stdio.h>
  2. int loop(int n);
  3. int main(void)
  4. {

  5.     int x=0;
  6.     printf("x = %d\n",x);
  7.     x=loop(9);
  8.     printf("x = %d\n",x);
  9.     return 0;
  10. }


  11. int loop(int n)
  12. {
  13.     int m; //m 的作用域
  14.     scanf("%d",&m);

  15.     {
  16.         int i; // i 的作用域
  17.         for(i = m;i < n; i++)
  18.             puts("i is local to a sub-block\n");
  19.     }
  20.     return m; //m的作用域,i 已经消失
  21. }

 



通过作用域,在 v4l2 程序中 测试 V4L2摄像头获取单幅图片(MMAP模式) (一)

  1. for (n_buffers = 0; n_buffers < req.count; ++n_buffers)
  2. {
  3.    struct v4l2_buffer buf; //驱动中的一帧
  4.    CLEAR (buf);
  5.    buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
  6.    buf.memory = V4L2_MEMORY_MMAP;
  7.    buf.index = n_buffers;

 struct v4l2_buffer buf; //驱动中的一帧

  会在,一次循环之后,变量自动消失,

 如果 再次循环,那么又会 建立 变量,struct

v4l2_buffer  只在  {  } 代码块中有意义。。





阅读(809) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~