
C语言基础
文章平均质量分 58
DC_Neo
这个作者很懒,什么都没留下…
展开
-
c语言中的类型限定词之一volatile
大多数计算机拥有一系列寄存器,其存取速度比计算机主存更快。好的编译程序能进行一种被称为“冗余装入和存储的删去”(redundant load and store removal)的优化,即编译程序会在程序中寻找并删去这样两类代码:一类是可以删去的从内存装入数据的指令,因为相应的数据已经被存放在寄存器中;另一种是可以删去的将数据存入内存的指令,因为相应的数据在再次被改变之前可以一直保留在寄存器中。转载 2012-07-18 15:17:41 · 725 阅读 · 0 评论 -
c语言中的类型限定词之一const
众所周知,变量是以它类型和存储类表征的。在C90中增加了两个特性:不变性和易变性。这些属性是通过关键字const和volatile声明的,而C99增加了restrict,以方便编译器优化。通过资料的整合和日常的应用,让我们一一来认识这些限定词。 const:带有const声明的变量,不能通过赋值、增量或减量运算来修改变量的值。下面介绍典型的应用:(1) 在指针的声明中使用cons原创 2012-07-18 14:50:23 · 836 阅读 · 0 评论 -
c语言中的类型限定词之一restrict
C99中新增加了restrict修饰的指针:由restrict修饰的指针是最初唯一对指针所指向的对象进行存取的方法,仅当第二个指针基于第一个时,才能对对象进行存取。对对象的存取都限定于基于由restrict修饰的指针表达式中。由restrict修饰的指针主要用于函数形参,或指向由malloc()分配的内存空间。restrict数据类型不改变程序的语义。编译器能通过作出restrict修转载 2012-07-18 15:24:10 · 837 阅读 · 0 评论 -
指针和多维数组
多维数组可以看作是一维数组的延伸,多维数组的内存单元也是连续的内存单元。换句话说,C语言实际上是把多维数组当成一维数组来处理的。下面以二维数组为例说明这个概念。比如,现在有一个int型的二维数组a[3][4],计算机认为这是一个一维的数组a[3],数组的三个元素分别是a[0],a[1]和a[2]。其中每个元素又是一个一维数组,例如a[0]又是一个包含a[0][0],a[0][1],a[0][2转载 2012-07-18 17:01:44 · 520 阅读 · 0 评论