查閱有關(guān)資料51中斷函數(shù)聲明變量為全局變量?不知道這個(gè)說(shuō)法對(duì)不對(duì)。1、在中斷函數(shù)內(nèi)聲明變量bit flag = 0;那么變量可以被正常賦值使用;
2、在中斷函數(shù)內(nèi)聲明為uchar flag = 0;此時(shí)該變量不能被正常賦值使用;
3、把變量uchar flag = 0;聲明到全局變量,該變量可以正常賦值使用;
單片機(jī)STC89C52;編譯平臺(tái)keil5代碼如下:
#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char
在函數(shù)內(nèi)定義的變量屬于局部變量,在中斷函數(shù)內(nèi)聲明為uchar flag = 0;其變量flag可以使用,只是不能重新賦值,因編譯系統(tǒng)把它優(yōu)化了,如果在中斷函數(shù)內(nèi)聲明為uchar flag;后面的語(yǔ)句可以給flag賦值使用