乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      15W4K58S4 實(shí)驗(yàn)3:空指針與位變量

       360tsgyd 2018-06-26

      實(shí)驗(yàn)筆記3

      電路圖如實(shí)驗(yàn)1

      關(guān)于void類型的指針:

      定義可以指向任何類型變量的指針,即定義無類型通用指針void

      void *pvoid;  

      void指針的使用:
        
      //如果有三個(gè)變量
         
      char  a=1;
          
      int   b=2;
          
      float  c=3;

           
      //定義無類型指針
         
      void *pvoid;

           //將指針指向char 型變量a
      ?   
      pvoid=&a; 

      //void指針進(jìn)行強(qiáng)制類型轉(zhuǎn)換,之后對a重新賦值

      //(char *)pvoid   是強(qiáng)制類型轉(zhuǎn)換,

      //*((char *)pvoid) 轉(zhuǎn)換之后再引用

         *((char *)pvoid)=10;

       

      //顯示變量a的值,對void指針類型要做強(qiáng)制類型轉(zhuǎn)換

         printf("chara=%bd\n",*((char *)pvoid));

       

      //將指針指向int  型變量b

         pvoid=&b;

      //void指針進(jìn)行強(qiáng)制類型轉(zhuǎn)換,之后對b重新賦值

         *((int *)pvoid)=20;

      printf("intb=%d\n",*((int *)pvoid));

       

      //將指針指向float 型變量c

         pvoid=&c;

      //void指針進(jìn)行強(qiáng)制類型轉(zhuǎn)換,之后對c重新賦值

         *((float *)pvoid)=30;

         printf("floatc=%f\n",*((float *)pvoid));

       

      在多個(gè)文件中使用sbit bit 位變量

      在某一個(gè)工程中可以包含若干個(gè).c文件,如果在一個(gè)文件中定義了位變量,那么在其它文件中如何引用它們呢?

      例如,在一個(gè)工程中包含了3.c 3a.c兩個(gè)文件,首先在3.c中定義位變量:

      bit  irflag=0;               //定義簡單位變量

      int  bdata bdat;          //在可位尋址區(qū)定義整型變量

      char bdata bary[4];    //在可位尋址區(qū)定義字符型數(shù)組

       

      //在可位尋址的基礎(chǔ)上定義位變量

      //定義整型數(shù)bdat的最低位和最高位

      sbit mybit0=bdat^0;

      sbit mybit15=bdat^15;

       

      //定義字符數(shù)組元素0的第7位和3的第7

      sbit Ary07=bary[0]^7;

      sbit Ary37=bary[3]^7;

       

      //定義特殊功能寄存器P00位為LED

      sbit LED0=P0^0;


      //現(xiàn)在,想在3a.c中使用這些變量,首先頂一個(gè)與3a.c對應(yīng)的頭文件3a.h,在其中輸入

      #ifndef  _3a_c_

      #define  _3a_c_
      ?    .
      ?    .
      ?    .
      ?    .
       
      ?   
      #endif
      ?   
      //這樣做是為了避免重復(fù)編譯
      ?
       

      #ifndef  _3a_c_

      #define  _3a_c_

      #include "STC15W4K.H"          //包含頭文件,里面有特殊功能寄存器的定義


      //定義LED

      sbit  LED0=P0^0;

      //對于已經(jīng)在其它文件定義過的位變量,使用外部變量extern說明符

      extern bit irflag;         //定義過的簡單位變量

      extern bit mybit0;      //可位尋址區(qū)的int型變量的最低位

      extern bit mybit15;    //可位尋址區(qū)的int型變量的最高位

      extern bit Ary07;       //可位尋址區(qū)的char 型數(shù)組0號(hào)元素的第7

      extern bit Ary37;       //可位尋址區(qū)的char 型數(shù)組3號(hào)元素的第7

      void output(void);

      #endif


      頭文件其實(shí)就相當(dāng)于各個(gè)源程序文件的接口,把可以被別的文件使用的變量和函數(shù)在頭文件中聲明。變量前要加關(guān)鍵字extern。

      函數(shù)聲明前不需要extern關(guān)鍵字。因?yàn)樵陬^文件中聲明的函數(shù),缺省情況下都是整個(gè)工程中可見的。

      如果不希望被其它文件看到,可以在定義函數(shù)的時(shí)候加關(guān)鍵字static。


      ?實(shí)驗(yàn)效果:

       

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多