笔记(6)存储类、链接和内存管理-…

-------存储类、链接和内存管理
作用域、链接、存储时期
    一、5种存储类
    1、自动的声明方式:在代码块内
    2、寄存器的声明方式:在代码块内,使用关键字register
    3、具有外部链接的静态的声明方式:所有函数之外
    4、具有内部链接的静态的声明方式:所有函数之外,使用关键字static
    5、空链接的静态的声明方式:代码块内,使用关键字static
      ··图片c000··
笔记(6)存储类、链接和内存管理--C <wbr>Primer <wbr>Plus


    使用register声明的类型是有限的。eg:处理器可能没有足够大的寄存器来容纳double类型。
      ··图片c001··
笔记(6)存储类、链接和内存管理--C <wbr>Primer <wbr>Plus



--------------------------------------------------------------------------------------  
  二、存储类说明符:auto、register、static、extern、typedef
      ··图片c002··
笔记(6)存储类、链接和内存管理--C <wbr>Primer <wbr>Plus



  int tern=1;
    main()
    {
    extern int tern;//extern表明在声明一个已经在别处定义了的变量
    tern声明了两次,第一次称为为定义声明,为变量留出了存储空间;第二次称为引用声明,
    只是告诉编译器要使用之前定义的变量tern,因此它们是不同的定义。
--------------------------------------------------------------------------------------
      -->>静态变量的“静态”实际上是指变量的位置固定不动.
      -->>外部变量的作用域:从声明的位置开始到文件结尾为止.
     
-------------------------------------------------------------------------------
--随机函数--->>>产生0到32767范围内的随机数
使用ANSI C的可移植算法

#include<stdio.h>
#include<time.h>
static unsigned long int next = 1;//随机数种子
void srand(unsigned int seed)
{
    next=seed;
}
int rand(void)
{
  //产生随机数的魔术般的公式
      next=next*110351524+12345;
      return (unsigned int)(next/65536)2767;
}
int main()
{
      //int n=6;
      srand((unsigned int)time(0));
      //while(n--)
      printf("%lu\n",rand());
return 0;
}
//1到50的随机数  
一、
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{
      int i;
      srand((unsigned)time(NULL));
      while(1)
      {       i=rand();
        if(i>-1&&i<50)
        {
              printf("%d",i);
              break;
        }
      }
return 0;
}
二、
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
int main()
{
      unsigned int j;
      srand((unsigned int)time(0));
      j=(unsigned int)(rand()P);
      printf("%ud\n",j);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值