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

C/C++变量分析


BSS
未初始化的数据
DATA
初始化的数据
TEXT(code)
代码
 
      在C中有全局、局部(自动变量)和静态变量。
全局变量在C语言里表示时,在函数之外的就是全局变量,即在函数外所申明的变量;而静态变量可以放在函数外,也可以放在函数内。全局变量有两个作用:第一,当在函数外申明时,所有文件的函数都可以访问它,都可以直接引用全局变量的访问;第二,可以允许另外的文件访问,但是在那个要访问的文件中用extern做标记。而静态变量如果放在函数的外面,则在整个文件中也是可以访问的,但是,另外的文件是不可以访问的。如果静态变量放在函数内,那么就只能是这个函数能访问,但它还是放在DATA区域中的。
      局部变量都是在堆栈中的,而静态和全局都是在数据区中。堆栈和全局区在执行的时候如图所示;
堆区
栈区
堆区
BSS
DATA
CODE
如果类是一个巨大的类,需要占据很大的数据空间,就应该把它当做指针用new来分配空间。
局部变量(自动变量),自动的意思就是自动地分配和清除,并且出示的值也是随机的。所以,如果程序中没有对自动变量进行复制就使用,那么可能会出现意想不到的问题。
 


相关文档:

C程序:定义宏打印某位域共有多少位

#include <stdio.h>
#define bits(p, d) { \
int _tmp=p->d, _bits=0; \
for (p->d=1; p->d; p->d<<=1) \
_bits++; \
p->d=_tmp; \
printf("%s->%s has %d bits", #p, #d, _bits); \
}
typedef struct _s{
int a:4;
} S;
int main()
{
S tmp, ......

javaSocket客户端与C服务端通信

转自:http://hi.baidu.com/ssrt_hanbing/blog/item/62e3b934598eeb82a71e1238.html
通过高低位转换。
package com.commnt;
import java.net.*;
import java.io.*;
public class Client {
public String send(String address, int port, String str) {
   OutputStream os = null;
   DataInpu ......

S3C2410 Nand Flash控制器

    访问Nand Flash时需要先发出命令,然后发出地址序列,最后读/写数据;
    需要使用各个信号来分辨命令、地址、数据;
    S3C2410 的Nand  Flash控制器 提供了相关寄存器来简化这些操作:
           & ......

理解c中的序列点

理解c中的序列点
 
 
http://blog.chinaunix.net/u1/42826/showart_364176.html
让我们来看看下面的代码:
int i=7;
printf(”%d\n”, i++ * i++);
你认为会返回什么?56?no。正确答案是返回 49?很多人会问为什么?难道不该打印出56吗?在ccfaq中有非常详尽的解释,根本原因在于c中的序列 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号