日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

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; 

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

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

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

   *((char *)pvoid)=10;

 

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

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

 

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

   pvoid=&b;

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

   *((int *)pvoid)=20;

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

 

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

   pvoid=&c;

//對(duì)void指針進(jìn)行強(qiáng)制類型轉(zhuǎn)換,之后對(duì)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;               //定義簡(jiǎn)單位變量

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對(duì)應(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;

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

extern bit irflag;         //定義過的簡(jiǎn)單位變量

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)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多