一、内存基本构成
可编程内存在基本上分为这样的几大部分:静态存储区、堆区和栈区。他们的功能不同,对他们使用方式也就不同。
静态存储区:内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。它主要存放静态数据、全局数据和常量。
栈区:在执行函数时,函数内局部变量的存储单元都可以在栈上创...
分类:
其他好文 时间:
2014-05-26 07:53:33
阅读次数:
308
1.1程序被其他程序翻译成不同的格式 1.hello.c#include int main(){
printf("hello world\n"); } 2.编译过程 3.编译系统 预处理器、编译器、汇编器和链接器一起构成了编译系统
预处理阶段。预处理器(cp...
分类:
其他好文 时间:
2014-05-23 10:30:50
阅读次数:
297
本文解决的主要是界面程序编译运行后无法显示中文的问题,...
分类:
系统相关 时间:
2014-05-21 16:10:53
阅读次数:
460
在编译CUDA程序的时候,会产生大量的警告信息的解决方法。...
分类:
其他好文 时间:
2014-05-18 14:05:38
阅读次数:
298
1.简介:编译器是将一种语言翻译成另一种语言的程序。编译器将源程序的代码作为输出,从而产生用目标语言编写的等价程序。例如源代码为C/C++等高级语言,那么目标语言就是目标机器的机器代码,也就是可以直接运行的机器代码(各种二进制)。下面就是一个编译过程的简单例子:
x=2 (高级语言)
MOV x,2 (汇编语言)
C7 06 0000 0002 (机器代码)
2.相关程序...
分类:
其他好文 时间:
2014-05-18 13:41:56
阅读次数:
263
1.内存分配方式
内存分配方式有三种:
[1]从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。
[2]在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。
[3]从堆上分配,亦...
分类:
其他好文 时间:
2014-05-12 23:57:25
阅读次数:
508
gcc和g++都是GNU(一个组织)的编译器。1、对于.c后缀的文件,gcc把它当做是C程序;g++当做是C++程序;2、对于.cpp后缀的文件,gcc和g++都会当做c++程序。3、编译阶段,g++会调用gcc;4、连接阶段,通常会用g++来完成,这是因为gcc命令不能自动和c++程序使用的库连接...
分类:
其他好文 时间:
2014-05-12 02:19:46
阅读次数:
272
编译程序仅仅能查找出程序的语法错误,而对于“数组越界访问”“对空指针解引用”等错误,编译程序是束手无策的。
同时我们知道测试人员所使用的黑箱测试方法所能做的只是往程序里填数据,并看它弹出什么。这就决定了
对程序错误的检测可能需要点运气。
假如编译程序能够检测出“数组越界访问”,“差一错误”等等错误,那么编写无错代码其实就要简答多了。
所以我们需要一个思维转变:...
分类:
编程语言 时间:
2014-05-10 04:56:43
阅读次数:
382
这二天的一个软件发布后,在自己的电脑与测试电脑上和虚拟机上运行都没有问题,当弄了一台新电脑,准备安装好软件,给客户用时,出现"应用程序无法启动,应用程序的并行配置不正确".这回有点傻了,这个错误都没见过,在说,我程序编译时用的是静态库编译,如果没有库,也会报缺少**.D..
分类:
其他好文 时间:
2014-05-09 21:22:59
阅读次数:
215
本节讲述代码分块(Bank)管理思想下可执行文件的重构,即对程序编译后的可执行文件进行重新组织、打包,以在加载阶段获得最高的执行效率,减少内存占用。要使执行效率高,意味着可执行文件的格式尽可能简单,解析执行文件的流程简单,相应地,解析过程代码量少,即能够减少内存的占用。...
分类:
其他好文 时间:
2014-05-07 07:11:49
阅读次数:
279