程序设计
文章平均质量分 81
shenbin1430
本人只搞技术,不搞歪门邪道!
展开
-
C的标记化结构初始化语法
这是ISO C99的用法 C Primer Plus第五版中相关章节: 已知一个结构,定义如下 struct book { char title[MAXTITL]; char author[MAXAUTL]; float value; }; C99支持结构的指定初始化项目,其语法与数组的指定初始化项目近似。只是,结构的转载 2009-08-10 17:54:00 · 781 阅读 · 0 评论 -
C语言编译全过程
<br /><br />编译的概念:编译程序读取源程序(字符流),对之进行词法和语法的分析,将高级语言指令转换为功能等效的汇编代码,再由汇编程序转换为机器语言,并且按照操作系统对可执行文件格式的要求链接生成可执行程序。<br /> 编译的完整过程:C源程序-->预编译处理(.c)-->编译、优化程序(.s、.asm)-->汇编程序(.obj、.o、.a、.ko)-->链接程序(.exe、.elf、.axf等)<br /><br />1转载 2010-06-30 16:39:00 · 946 阅读 · 0 评论 -
可变长度函数参数的原理及使用
概述由于在C语言中没有函数重载,解决不定数目函数参数问题变得比较麻烦;即使采用C++,如果参数个数不能确定,也很难采用函数重载.对这种情况,有些人采用指针参数来解决问题。下面就c语言中处理不定参数数目的问题进行讨论。 定义大家先看几宏.在VC++6.0的include有一个stdarg.h头文件,有如下几个宏定义:#define _INTSIZEOF(n) (转载 2009-09-24 15:39:00 · 2019 阅读 · 0 评论 -
VC中利用多线程技术实现线程之间的通信
当前流行的Windows操作系统能同时运行几个程序(独立运行的程序又称之为进程),对于同一个程序,它又可以分成若干个独立的执行流,我们称之为线程,线程提供了多任务处理的能力。用进程和线程的观点来研究软件是当今普遍采用的方法,进程和线程的概念的出现,对提高软件的并行性有着重要的意义。现在的大型应用软件无一不是多线程多任务处理,单线程的软件是不可想象的。因此掌握多线程多任务设计方法对每个程序员都是必需转载 2009-09-13 23:36:00 · 584 阅读 · 0 评论 -
Java本地接口规范设计概述
平台相关代码是通过调用 JNI 函数来访问 Java 虚拟机功能的。JNI函数可通过接口指针来获得。接口指针是指针的指针,它指向一个指针数组,而指针数组中的每个元素又指向一个接口函数。每个接口函数都处在数组的某个预定偏移量中。图 2-1 说明了接口指针的组织结构。图 2-1 接口指针 JNI 接口的组织类似于 C++ 虚拟函数表或 COM 接口。使用接口表而转载 2009-06-30 11:07:00 · 2017 阅读 · 1 评论 -
堆和栈的区别
堆(heap)和栈(stack)的区别一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)—由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap)—一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。转载 2009-06-23 18:34:00 · 922 阅读 · 0 评论 -
C语言结构体的字节对齐原则
为什么要对齐? 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定类型变量的时候经常在特定的内存地址访问,这就需要各种类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。 对齐的作用和原因:各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些特定类型的数据只能从某些特原创 2009-06-23 18:27:00 · 16926 阅读 · 2 评论 -
C++指针与引用的区别
C++指针与引用的区别:1。不能使用指向空值的引用,指针可以指向空值。这就意味着引用比指针的代码效率高,因为无需合法性检查。2。指针可以被重新赋值以指向另一个不同对象,引用则总是指向在初始化时被指定的对象,不能改变。原创 2009-06-23 18:35:00 · 601 阅读 · 0 评论 -
Java与C#的垃圾回收机制
(一)垃圾回收器的基本假定 (1)最近被分配内存空间的对象最有可能需要被释放。在方法被执行前,通常需要为该方法所使用到的对象分配内存空间,搜索最近被分配的对象集合有助于花费最少的工作来释放进可能多的空闲内存空间。(2)生命期最长的对象需要释放的可能性最小。在通过几轮垃圾回收后仍然存在的对象不大可能是那种能够在下一轮回收中被释放的临时对象,搜索这些内存块往往要进行大量的工作,却只能释放很小一转载 2009-06-23 18:25:00 · 631 阅读 · 0 评论 -
Java内存管理机制
Java的内存管理就是对象的分配和释放问题。在Java中,程序员需要通过关键字new为每个对象申请内存空间 (基本类型除外),所有的对象都在堆(Heap)中分配空间。另外,对象的释放是由GC决定和执行的。在Java中,内存的分配是由程序完成的,而内存的释放是有GC完成的,这种收支两条线的方法确实简化了程序员的工作。但同时,它也加重了JVM的工作。这也是Java程序运行速度原创 2009-06-23 18:16:00 · 2666 阅读 · 0 评论 -
c#程序集的定义
一、程序集的一些基本概念:程序集是包含一个或多个类型定义文件和资源文件的集合。它允许我们分离可重用类型的逻辑表示和物理表示.程序集是一个可重用、可实施版本策略和安全策略的单元。它允许我们将类型和资源划分到不同的文件中,这样程序集的使用者便可以决定将哪些文件打包在一起部署。一旦CLR加载了程序集中包含清单的那个文件,它就可以确定程序集的其他文件中哪些包含了程序正在引用的类型和资源。任转载 2009-06-23 18:25:00 · 1087 阅读 · 0 评论 -
Groovy语言的介绍
Groovy是一种语言,其语法类似于Java,但比Java更简单。它通常被视为脚本/灵活/动态的语言,但是我不喜欢这类形容词,因为我认为它们只会令人困惑。如果说Java是一位明智的中年男子,那么Groovy就是他十几岁的儿子。Groovy具有父亲的许多特点,但是更为狂野且更为有趣。他们也可以很好地合作。Groovy的规则比Java少得多。例如,要在Java中获得标准的"HelloW转载 2011-06-13 14:32:00 · 7211 阅读 · 0 评论