单片机C语言中的while(1)是什么意思 单片机C语言中 while(a--)是什么意思 a为什么要定...
\u5355\u7247\u673aC\u8bed\u8a00\u7a0b\u5e8f\u4e2d\uff1awhile(1)\u662f\u4ec0\u4e48\u610f\u601d\u5440\uff1fwhile(2)\u884c\u4e0d\u884c\uff1fwhile(1)\u8868\u793a\u65e0\u9650\u5faa\u73af\u7684\u6267\u884c\u5b83{ }\u5185\u7684\u8bed\u53e5\uff0c\u5982\u679c\u5199\u6210while(2)\u3001while(3)\u7b49\u6548\u679c\u662f\u4e00\u6837\u7684\uff0c\u64cd\u4f5c\u65b9\u6cd5\u5982\u4e0b\uff1a
1\u3001\u9996\u5148\u65b0\u5efa\u4e00\u4e2a\u9879\u76ee\uff0c\u6dfb\u52a0\u5934\u6587\u4ef6\uff0c\u5982\u56fe\u6240\u793a\u3002
2\u3001\u63a5\u7740\u8f93\u5165main\u51fd\u6570\uff0c\u5982\u56fe\u6240\u793a\u3002
3\u3001\u7136\u540e\u5b9a\u4e49\u4e00\u4e2a\u6570\u7ec4(\u957f\u5ea6\u4e3a\uff1a5)\uff0c\u5982\u56fe\u6240\u793a\u3002
4\u3001\u63a5\u7740\u4f7f\u7528while\u5faa\u73af\u628a\u6570\u7ec4\u6253\u5370\u51fa\u6765\uff0c\u5982\u56fe\u6240\u793a\u3002
5\u3001\u7136\u540e\u5728\u952e\u76d8\u4e0a\uff0c\u6309\u5feb\u6377\u952eF5\u8fd0\u884c\u7a0b\u5e8f\uff0c\u6253\u5370\u51fa\u7ed3\u679c\uff0c\u5982\u56fe\u6240\u793a\uff0c\u5c31\u5b8c\u6210\u4e86\u3002
\u6211\u4f30\u8ba1\uff0c\u90a3\u662f\u7528\u6765\u4f5c\u65f6\u95f4\u95f4\u9694\u63a7\u5236\u3002while(--a); \u662f\u5faa\u73af50000\u6b21\uff0c\u5f53a \u53d80\u65f6\uff0cwhile \u7ed3\u675f\u3002
\u4e3a\u4f55\u5b9a\u5f97\u5982\u6b64\u5927\uff0c\u662f\u56e0\u4e3a\u7a7a\u5faa\u73af\u901f\u5ea6\u5f88\u5feb\uff0c\u53ea\u6709\u5faa\u73af\u5f88\u591a\u6b21\u624d\u80fd\u83b7\u5f97\u8db3\u591f\u957f\u7684\u65f6\u95f4\u95f4\u9694\u3002
a=50000; while(--a);
\u7b2c2\u4e2a while(--a); \u4f3c\u4e4e\u6709\u95ee\u9898\uff0c\u6b7b\u5faa\u73af\u3002\u662f\u4e0d\u662f\u524d\u9762\u6f0f\u4e86\u53e6\u4e00\u4e2a a=50000;
意义:这是一个死循环,代码不再向下执行。
用途:
1. 一般在调试代码时,为了检测一部分代码是否OK,防止后面的代码干扰执行结果,会在观测点加上while(1);
2. 有些代码检测到运行错误时,会抛出错误(打印、设置错误码),然后进入while(1);
3. 机器需要复位时,停止喂看门狗,进入while(1); 迫使看门狗超时,产生硬件复位
while( 1 ) { 代码 }
意义:这里将会重复执行{}中的代码
用途:
1. 单片机在不使用操作系统时,主程序一般都使用这种架构
2. 操作系统中的进程,执行任务时,有些也会使用这种架构
3. {}中的代码不停地检测某个条件,当条件符合时,跳出该循环,继续向下执行
就是死循环,让程序就此打住,不在往下运行,除非中断来到可以打断,但是中断结束后又回到while(1),在此等待中断来临。
无限循环,因为1恒为真,所以循环会一直进行下去,这个经常用到的。
是一个无限循环,只要括号里面里面为真就执行,比如说while(2) while(3) 都可以
while(语句)
只要语句的值为非0,while后面的statement就会一直执行,而1永远都是非0,就会导致后面一直执行。为了避免它是一个死循环,通常会在后面跟的statement中添加判断,以在合适的条件满足跳出循环
绛旓細while(1);鎰忎箟锛氳繖鏄竴涓寰幆锛屼唬鐮佷笉鍐嶅悜涓嬫墽琛屻傜敤閫旓細1. 涓鑸湪璋冭瘯浠g爜鏃讹紝涓轰簡妫娴嬩竴閮ㄥ垎浠g爜鏄惁OK锛岄槻姝㈠悗闈㈢殑浠g爜骞叉壈鎵ц缁撴灉锛屼細鍦ㄨ娴嬬偣鍔犱笂while(1);2. 鏈変簺浠g爜妫娴嬪埌杩愯閿欒鏃讹紝浼氭姏鍑洪敊璇紙鎵撳嵃銆佽缃敊璇爜锛夛紝鐒跺悗杩涘叆while(1);3. 鏈哄櫒闇瑕佸浣嶆椂锛屽仠姝㈠杺鐪嬮棬鐙楋紝杩涘叆while(1...
绛旓細while(1)鍏朵腑1浠h〃涓涓父閲忚〃杈惧紡锛寃hile(1) 琛ㄧず鏃犻檺寰幆锛岄櫎闈炰綘璁剧疆break绛夌被浼肩殑璺冲嚭寰幆璇彞寰幆鎵嶄細涓 while(i--)鍏朵腑i鏄竴涓彉閲忥紝鍥犳琛ㄨ揪寮廼--鏈変笉鍚岀殑鍊硷紝渚濇閫掑噺锛宨--鏄厛鍙栧煎悗鍑忥紝--i鍏堝姞鍚庡彇鍊,鎵浠--鐨勫煎悓鏈墽琛岃鑷噺杩愮畻鏃剁殑i鐩哥瓑銆
绛旓細while(1)琛ㄧず鏃犻檺寰幆鐨勬墽琛屽畠{ }鍐呯殑璇彞锛屽鏋滃啓鎴恮hile(2)銆亀hile(3)绛夋晥鏋滄槸涓鏍风殑锛屾搷浣滄柟娉曞涓嬶細1銆侀鍏堟柊寤轰竴涓」鐩紝娣诲姞澶存枃浠讹紝濡傚浘鎵绀恒2銆佹帴鐫杈撳叆main鍑芥暟锛屽鍥炬墍绀恒3銆佺劧鍚庡畾涔変竴涓暟缁(闀垮害涓猴細5)锛屽鍥炬墍绀恒4銆佹帴鐫浣跨敤while寰幆鎶婃暟缁勬墦鍗板嚭鏉ワ紝濡傚浘鎵绀恒5銆佺劧鍚庡湪閿洏涓婏紝...
绛旓細while (1)鏄寰幆鐨勬剰鎬濄傚氨鏄鍗曠墖鏈鎵ц鍒拌繖閲屽氨缁撴潫浜嗭紝while (1)鏄粰鍗曠墖鏈轰竴浜涗簨鎯呭共銆傚惁鍒欏崟鐗囨満灏卞張寮濮嬮噸鏂板垵濮嬪寲浜嗐
绛旓細鍘熷湴杞Щ锛岃矊浼兼寰幆锛屽疄鍒欑瓑寰呬腑鏂殑鍙戠敓銆備腑鏂悗锛屾墽琛岋細void IMER (void) interrupt 1 using 0 缁撴潫鍚庯紝杩斿洖鍒帮細while(1);缁х画绛夊緟銆
绛旓細灏辨槸姝诲惊鐜紝姘歌繙涓嶄細鏈夎烦鍑哄惊鐜殑鏃跺欍
绛旓細灏辨槸while(1){} 澶ф嫭鍙閲岄潰鐨璇彞涓嶆柇閲嶅鎵ц锛岃繖鏄竴涓寰幆
绛旓細灏辨槸鏃犻檺寰幆鍢
绛旓細杩欎竴鑸敤鍦ㄤ粎浠呬緷闈犱腑鏂伐浣滅殑鍦哄悎锛屼篃灏辨槸璇达紝鍗曠墖鏈鍋氬畬鍒濆鍖栧悗锛屼箣鍚庣殑鎵鏈夊伐浣滃畬鍏ㄧ敱涓柇浜х敓鏃舵墠瀹屾垚鐩稿簲鐨勫伐浣滐紝姣斿鏃ュ巻绛夌瓑銆傚鏋滄病鏈夎繖鍙ョ殑璇濓紝绋嬪簭灏卞娴佹按涓鏍锋案涓嶅洖澶寸殑璧颁簡锛屾墽琛屽畬鏈鍚庝竴鍙ュ氨瀵跨粓姝e瘽銆
绛旓細绗竴涓while(1)锛岃繖鏄竴涓棤鏉′欢寰幆锛屽洜涓烘潯浠舵案杩滀负鐪燂紝鍗虫案杩滃惊鐜笅鍘伙紝灏辨槸鏃犳潯浠跺惊鐜簡锛岃繖鏄鍗曠墖鏈涓荤▼搴忓繀椤荤殑涓诲惊鐜粨鏋勩傝屽惊鐜墽琛岀殑绋嬪簭鏄笅闈 }鍐呯殑鎵鏈夌▼搴忋傝繖涓▼搴忕殑涓诲惊鐜湁3鏉¤鍙ワ紝i=2000;鏄粰i璧嬪垵鍊硷紝led1=1;鏄偣浜彂鍏変簩鏋佺锛岃寃hile(i--);鏄竴涓皬寰幆璇彞锛岀敤鏉ュ欢鏃...