一些区别的说明

一,编译器和开发环境
编译器是开发环境的一部分,相当于一个翻译官,将高级语言编译成计算机可识别的汇编语言。
开发环境包括编辑器,编译器,调试工具,图形用户界面等多个软件。如IDE集成开发环境。
二,堆和栈
先来讲一下内存的分配:
一个由c/C++编译的程序占用的内存分为以下几个部分

1、栈区(stack)― 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。

2、堆区(heap) ― 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。

3、全局区(静态区)(static)―,全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。 - 程序结束后有系统释放

4、文字常量区 ―常量字符串就是放在这里的。 程序结束后由系统释放

5、程序代码区―存放函数体的二进制代码。
这是一个前辈写的,非常详细

//main.cpp

int a = 0; 全局初始化区

char *p1; 全局未初始化区

main()

{

int b; 栈

char s[] = “abc”; 栈

char *p2; 栈

char *p3 = “123456”; 123456\0在常量区,p3在栈上。

static int c =0; 全局(静态)初始化区

p1 = (char *)malloc(10);

p2 = (char *)malloc(20);

分配得来得10和20字节的区域就在堆区。

strcpy(p1, “123456”); 123456\0放在常量区,编译器可能会将它与p3所指向的”123456”优化成一个地方。

}

堆(heap):一般由程序员分配和释放,若程序员不释放,OS(operating System)回收。
特点:分配到空闲内存中,所以未必连续,且分配速度慢,容易产生内存碎片,但容易控制。
栈(stack):由编译器自动分配释放,存放函数的值。
特点:分配速度快,但不容易控制。
三,上行和下行
上网的上行通常都比下行慢很多。主要是由于ADSL技术的限制,上行通道25个,下行249个,但这只能从技术上说明问题,而不能说明为什么要这样设计。
因为很多网站的服务器放在电信的机房里,这些服务器需要上行流量,所以电信的上行流量便分配给了机房使用。为了做到这一点,普通用户无法拿到固定IP,同时,80端口也会被限制。如果要使上行达到相应的速度,需要用户出资外加一个固定IP。但价格也很昂贵。
四,文档和文件
文档是各类程序使用的记录文件的统称,他注重文字表现形式,成文时需要对段落,字符和编辑界面进行编辑和排版。
文件是最大的概念,电脑中可见的都是文件。
五,后缀名和扩展名
一个意思

你可能感兴趣的:(杂谈模块)