Ⅰ 闱欐佸彉閲忓湪鍐呭瓨涓瀛樻斁镄勪綅缃鏄
闱欐佸彉閲忓湪鍐呭瓨涓瀛樻斁镄勪綅缃鏄镙埚尯銆
C璇瑷涓瀹氢箟镄勯润镐佸彉閲忓瓨鏀惧湪镙埚尯锛屽姩镐佸垎閰岖殑鍐呭瓨绌洪棿浣崭簬鍫嗗尯銆傞润镐佸彉閲忓湪鍐呭瓨绌洪棿涓鍙链変竴浠斤纴琚绫荤殑澶氢釜瀵硅薄鍏变韩銆
灞閮ㄥ彉閲忓湪镙堢┖闂翠笂鍒嗛厤锛岃繖涓灞閮ㄥ彉閲忔墍鍦ㄧ殑鍑芥暟琚澶氭¤皟鐢ㄦ椂锛屾疮娆¤皟鐢ㄨ繖涓灞閮ㄥ彉閲忓湪镙堜笂镄勪綅缃閮戒笉涓瀹氱浉钖屻傚眬閮ㄥ彉閲忎篃鍙浠ュ湪鍫嗕笂锷ㄦ佸垎閰嶏纴浣嗘槸璁板缑浣跨敤瀹岃繖涓鍫嗙┖闂村悗瑕侀喷鏀句箣銆
鍏ㄥ眬鍙橀噺鍏ㄩ儴瀛樻斁鍦ㄩ润镐佸瓨鍌ㄥ尯锛屽湪绋嫔簭寮濮嬫墽琛屾椂缁椤叏灞鍙橀噺鍒嗛厤瀛桦偍鍖猴纴绋嫔簭琛屽畬姣曞氨閲婃斁銆傚湪绋嫔簭镓ц岃繃绋嬩腑瀹冧滑鍗犳嵁锲哄畾镄勫瓨鍌ㄥ崟鍏冿纴钥屼笉锷ㄦ佸湴杩涜屽垎閰嶅拰閲婃斁銆
闱欐佸彉閲忕殑甯搁噺浣跨敤
闱欐佸彉閲忎篃鍙浠ョ敤浜庡瓨鍌ㄥ父鏁般傚叿浣撴潵璇达纴闱欐佸彉閲忥纸鍏ㄥ眬鍙橀噺鍙婃眹缂栬瑷閲屽畾涔夌殑绗﹀彿浜﹀悓锛夊彲鐢╟onst锛宑onstant鎴杅inal锛堟牴鎹璇瑷鍐冲畾锛夌瓑鍏抽敭瀛楁爣璇嗭纴杩欐椂鍏跺煎氨浼氩湪缂栬疟镞惰惧畾锛屽苟涓旀棤娉曞湪杩愯屾椂鏀瑰彉銆
缂栬疟鍣ㄩ氩父灏嗛润镐佸父閲忎笌鏂囨湰涓璧风疆浜庣洰镙囨枃浠剁殑鏂囨湰鍖哄烟锛岃岄潪甯搁噺鍒濆嫔寲鏁版嵁鍒欑疆浜庢暟鎹鍖猴绂钥屽傝嫢链夐渶瑕侊纴链変簺缂栬疟鍣ㄨ缮鍙阃夋嫨涓哄叾寮杈熶笓鐢ㄥ尯锛涗负阒叉㈠父鏁板彉閲忚阌栾镄勬寚阍埚啓鍏ヨ嗙洊锛屼害鍙鍦ㄨ繖鍧楀尯锘熷惎鐢ㄥ唴瀛树缭鎶ゆ満鍒躲
Ⅱ 51单片机定义变量时默认是存储到哪里的
未显式声明的情况下,变量会根据Memory Model的设置,默认分配在指定的存储区。
Small模式:默认分配在data区
Compact模式:默认分配在pdata区
Large模式:默认分配在xdata区
新建工程默认都是Small模式,所以未显式声明存储区域的变量都会分配在data区的。所以才会容易出现data区挤爆、编译器跳着脚让你把变量分到idata区去……
Ⅲ 绋嫔簭镄勫眬閮ㄥ彉閲 鍏ㄥ眬鍙橀噺 锷ㄦ佺敌璇锋暟鎹鍒嗗埆瀛桦偍鍦ㄤ粈涔埚湴鏂
绋嫔簭镄勫眬閮ㄥ彉閲忓叏灞鍙橀噺锷ㄦ佺敌璇锋暟鎹鍒嗗埆瀛桦偍鍦ㄦ爤閲屻
鏅阃氩眬閮ㄥ彉閲忓湪鍫嗘爤绌洪棿涓婂垎閰嶏纴褰揿眬閮ㄥ彉閲忕殑鍑芥暟琚澶氭¤皟鐢ㄦ椂锛屽眬閮ㄥ彉閲忔疮娆″湪鍫嗘爤涓婄殑浣岖疆閮戒笉鐩稿悓銆傝缮鍙浠ュ湪鍫嗕笂锷ㄦ佸垎閰嶅眬閮ㄥ彉閲忥纸malloc锛夛纴浣嗘槸瑕佽颁綇鍦ㄨ楀敖鍫嗙┖闂村悗閲婃斁zd銆
鍐呭瓨鍒嗛厤涓婄殑镙堢┖闂存椂瑕佹敞镒忓唴瀛樼殑锛屼笉鑳藉垎閰嶅お澶氱殑鍐呭瓨銆傚傛灉鍫嗘爤涓镄勭┖闂村皬浜庤锋眰镄勭┖闂村ぇ灏忥纴鍒欑郴缁熷皢鏄剧ず鍫嗘爤婧㈠嚭骞剁粰鍑虹浉搴旂殑寮傚父淇℃伅銆备絾鍫嗕笉钖岋纴鍫嗗彲鍒嗛厤绌洪棿寰埚ぇ銆
镓╁𪾢璧勬枡锛
娉ㄦ剰浜嬮”锛
瀵瑰眬閮ㄥ彉閲忚繘琛屽垎绫
1锛庝綅缃锛缂栬疟鍣灏嗛润镐佸眬閮ㄥ彉閲忔斁鍦ㄥ叏灞瀛桦偍鍖哄烟涓銆傛暟鎹锛屽洜姝ゅ敖绠″畠鏄链鍦扮殑锛屼絾瀹冨瓨鍦ㄤ簬绋嫔簭镄勬暣涓鐢熷懡锻ㄦ湡涓锛埚畠鍦ㄥ畾涔夋椂浜х敓锛屽苟闅忕潃绋嫔簭镄勭粨𨱒熻岀粨𨱒燂级銆
2锛庤块梾𨱒冮檺锛氶润镐佸眬閮ㄥ彉閲忓彧鑳界敱鍏朵綔鐢ㄥ烟鍐呯殑鍙橀噺鎴栧嚱鏁拌块梾銆备篃灏辨槸璇达纴灏界″畠灏嗗瓨鍦ㄤ簬绋嫔簭镄勬暣涓鐢熷懡锻ㄦ湡涓锛屼絾鏄鍏朵粬鍑芥暟鍜婧愭枃浠涓嶈兘璁块梾瀹冿纴锲犱负瀹冩槸闱欐佺殑銆
3锛庡硷细濡傛灉鐢ㄦ埛娌℃湁鍒濆嫔寲闱欐佸眬閮ㄥ彉閲忥纴缂栬疟鍣ㄤ细镊锷ㄥ皢鍏惰祴鍊间负0锛屾疮娆¤皟鐢ㄩ润镐佸眬閮ㄥ彉閲忔椂閮戒细浣跨敤链钖庝竴娆¤皟鐢ㄥ悗镄勫笺