在变量寄存器中,变量什么为独立存储器

寄存器的功能是存储二进制代码,它是由具有存储功能的触发器组合起来构成的。一个触发器可以存储1位二进制代码,故存放n位二进制代码的寄存器,需用n个触发器来构成。下面小编给大家介绍一下“寄存器变量是什么变量 寄存器变量怎么用”

一、寄存器变量是什么变量

在程序运行时,根据需要到内存中相应的存储单元中调用,如果一个变量在程序中频繁使用,例如循环变量,那么,系统就必须多次访问内存中的该单元,影响程序的执行效率。因此,C语言\C++语言还定义了一种变量,不是保存在内存上,而是直接存储在CPU中的寄存器中,这种变量称为寄存器变量。

寄存器变量的定义形式是:

register 类型标识符 变量名

寄存器是与机器硬件密切相关的,不同类型的计算机,寄存器的数目是不一样的,通常为2到3个,对于在一个函数中说明的多于2到3个的寄存器变量,C编译程序会自动地将寄存器变量变为自动变量。

由于受硬件寄存器长度的限制,所以寄存器变量只能是char、int或指针型。寄存器说明符只能用于说明函数中的变量和函数中的形参,因此不允许将外部变量或静态变量说为"register"。

register型变量常用于作为循环控制变量,这是使用它的高速特点的最佳场合。

register[寄存器]变量告诉编译器相关的变量应该改量存储在高速度的寄存器中。使用register存储类型的目的一般是为了提高执行速度,但是,register声明只是向编译器所提出的“建议”,并非强制要求。



(图片来源于互联网)

二、寄存器变量怎么用

以下为一个寄存器变量的声明:

register int variable;

寄存器变量:如果访问过于频繁,可使用此变量直接从寄存器访问。

eg.

#include <stdio.h> /*编译预处理指令*/

int sum ( int n );

/*一个函数声明语句,sum(...)是一个名字叫sum的函数声明,前边的int说明该函数的返回值是整型;(int n)说明传递函数的形参是一个整型变量*/

int main () /*主函数的函数头*/

{

int i , s; /*定义整型变量i,s*/

for ( i=1 ; i < = 5 ; i++ )

/*循环语句,首先执行 i = 1;

赋初值,再执行 i < =5;

判断是否符合条件,如果符合就执行 { } 里循环体的语句,执行完后,再执行 i ++ 运算,i ++ 等价于 i = i +1;

再执行 i < = 5 进行条件判断,如果符合就执行 { } 里循环体的语句,不符则跳出循环*/

printf ( " 前 % d 个自然数的和是 % d \n ", i, sum ( i ) );

/*第一个 % d 对应的是 i ,第二个 %d 对应的是 sum ( i ),sum ( i )是一个函数,返回值是int ;

第二个 % d 是整型的,所以第二个 sum ( i ) 返回前 i 项和*/

int sum ( int n )

/*定义一个返回值是整型的函数 sum ,它接受一个整型参数变量n*/

{

register int i , s = 0 ; /*定义寄存器变量*/

for ( i = 1 ; i < = n ; i ++ ) /*循环 n 次 */

s + = i ; /*赋值语句,等价于 s = s + i */

return s ; /*函数返回值*/

}

写此程序的目的:测试寄存器变量的用法,像以上内容,如果频繁访问 i 的值,则可以使用寄存变量。

register要与不要的区别:

凡是声明为 register 的变量,操作系统都会企图将其放入寄存器中以加快速度,如果寄存器中满了,则将由计算机硬件将寄存器中最久未使用的变量调入到高速缓冲存储器(Cache) 中,同时放入你的变量。

寄存器是CPU的一部分,所以其访问速度会远远高于同内存的访问速度。



  • register鍦╟璇█涓綔鐢
    绛旓細鍦–璇█涓紝`register`鍏抽敭瀛楃敤浜庢彁绀虹紪璇戝櫒灏嗘煇涓眬閮鍙橀噺灏藉彲鑳藉瓨鍌鍦ㄥ瘎瀛樺櫒涓紝浠ユ彁楂樼▼搴忕殑鎵ц閫熷害銆傚瘎瀛樺櫒鏄疌PU鍐呴儴鐨勪复鏃跺瓨鍌ㄥ崟鍏冿紝璁块棶閫熷害杩滃揩浜庡唴瀛樸傚綋鍙橀噺琚0鏄庝负`register`绫诲瀷鏃讹紝缂栬瘧鍣ㄤ細灏介噺灏嗚繖涓彉閲忓瓨鍌ㄥ湪瀵勫瓨鍣ㄤ腑锛岃繖鏍稢PU鍦ㄨ闂鍙橀噺鏃跺氨鑳界洿鎺ヤ粠瀵勫瓨鍣ㄤ腑鑾峰彇锛岃屼笉闇瑕佷粠鍐呭瓨涓鍙...
  • C璇█涓 鑷姩鍙橀噺 闈欐鍙橀噺 瀵勫瓨鍣ㄥ彉閲 澶栭儴鍙橀噺 鏈夊彲姣旀у悧?鍖哄埆鍦ㄥ摢...
    绛旓細c璇█涓彉閲忓垎涓哄洓绫伙紝鍒嗗埆鏄 1.auto 鑷姩鍙橀噺 2.static 闈欐佸瓨璐垎閰嶅彉閲忥紙鍙堝垎涓哄唴閮ㄩ潤鎬佸拰澶栭儴闈欐侊級3.extern 澶栭儴鍙橀噺/鍏ㄧ▼鍙橀噺锛堢敤浜庡閮ㄥ彉閲忚鏄庯級4.register 瀵勫瓨鍣ㄥ彉閲锛堝垎閰嶅湪纭欢瀵勫瓨鍣ㄤ腑锛夊洓澶х被锛屾墍鏈夊彉閲忓繀椤诲厛璇存槑锛堝畾涔夛級锛屽悗浣跨敤銆備笅闈㈠垎鍒粙缁 1.鑷姩鍙橀噺锛堝眬閮ㄥ彉閲忥級灞閮ㄥ彉閲...
  • C璇█鍩虹鐭ヨ瘑鎬荤粨澶у叏
    绛旓細娉ㄦ剰:鍙湁灞閮ㄨ嚜鍔ㄥ彉閲忓拰褰㈠紡鍙傛暟鍙互浣滀负瀵勫瓨鍣ㄥ彉閲;涓涓绠楁満绯荤粺涓殑瀵勫瓨鍣ㄦ暟鐩湁闄,涓嶈兘瀹氫箟浠绘剰澶氫釜瀵勫瓨鍣ㄥ彉閲;灞閮ㄩ潤鎬佸彉閲忎笉鑳藉畾涔変负瀵勫瓨鍣ㄥ彉閲忋 鐢╡xtern澹版槑鐨勭殑鍙橀噺鏄閮鍙橀噺,澶栭儴鍙橀噺鐨勬剰涔夋槸鏌愬嚱鏁板彲浠ヨ皟鐢ㄥ湪璇ュ嚱鏁颁箣鍚庡畾涔夌殑鍙橀噺銆 13.鍐呴儴鍑芥暟澶栭儴鍑芥暟 ! 鍦–璇█涓笉鑳借鍏朵粬婧愭枃浠惰皟鐢ㄧ殑鍑芥暟绉颁负鍐呴儴...
  • 缂栫▼閲,鑷姩鍙橀噺鍜瀵勫瓨鍣ㄥ彉閲鏄庝箞鍥炰簨?
    绛旓細鏈甯歌鐨勬槸鍦ㄤ竴涓嚱鏁颁綋褰撲腑,灏嗕竴涓父鐢ㄧ殑鍙橀噺澹版槑涓瀵勫瓨鍣ㄥ彉閲: register int ra; 濡傛灉鍙兘鐨勮瘽,缂栬瘧鍣ㄥ氨浼氫负瀹冨垎閰嶄竴涓鍗曠嫭鐨瀵勫瓨鍣紝鍦ㄦ暣涓嚱鏁版墽琛屾湡闂村杩欎釜鍙橀噺鐨勬搷浣滃叏閮芥槸瀵硅繖涓瘎瀛樺櫒杩涜鎿嶄綔,杩欐椂鍊欏氨涓嶇敤棰戠箒鍦板幓璁垮瓨浜,鑷劧灏辨彁楂樹簡鎬ц兘.浣嗘槸瀵勫瓨鍣ㄥ彉閲忎笉鏄己鍒舵х殑,...
  • 浠涔鏄瘎瀛樺櫒?浠涔堟槸瀵勫瓨鍣ㄥ彉閲?楹荤儲鍛婅瘔鎴
    绛旓細瀵勫瓨鍣ㄥ彉閲锛岄【鍚嶆濅箟锛屽氨鏄瓨璐湪瀵勫瓨鍣ㄩ噷鐨勫彉閲忋傜敱浜庢搷浣滃瘎瀛樺櫒鐨勯熷害杩滈珮浜庢搷浣滃唴瀛橈紝浣嗗瘎瀛樺櫒鐨勬暟閲忔湁闄愶紝鎵浠ユ妸鏈棰戠箒浣跨敤鐨勬暟鎹瓨鍌鍦ㄥ瘎瀛樺櫒閲岋紝鏈夋晥鍦版彁楂樼▼搴忚繍琛岄熺巼銆侰璇█瀹氫箟涓 register int a;
  • C涓兘鎸囧畾鍙橀噺浣跨敤鍝竴涓瀵勫瓨鍣鏉ユ搷浣滃悧
    绛旓細鍑犱箮涓嶅彲鑳斤紝鍥犱负瀵勫瓨鍣鏄綘鐨勭▼搴忓拰c缂栬瘧鍣ㄩ兘鏈夊彲鑳戒娇鐢ㄧ殑璧勬簮锛屽鏋滄寚瀹氫娇鐢ㄦ湁鍙兘浼氫笌c鐨勬爣鍑嗘搷浣滃拰鍏朵粬瀛愮▼搴忕殑浣跨敤鍐茬獊銆備竴鑸彲浠ユ寚瀹氭煇鍙橀噺浣跨敤瀵勫瓨鍣ㄤ互鎻愰珮璁$畻鏁堢巼锛屼絾涓嶅彲浠ラ檺瀹氬叿浣撶殑瀵勫瓨鍣 涔熷彲浠ョ敤宓屽叆鐨勬眹缂栫▼搴忚绠楋紝鍙橀氬疄鐜
  • C璇█鍩虹鐭ヨ瘑
    绛旓細14.瀵勫瓨鍣ㄥ彉閲浣跨敤register澹版槑锛屼粎閫傜敤浜庝娇鐢ㄩ鐜囬珮鐨勫眬閮ㄥ彉閲(鍚舰鍙)(鍙楅檺浜庡簳灞傜‖浠讹紝涓嶄竴瀹氫細琚垎閰嶅埌瀵勫瓨鍣紝浣嗘槸杩欎箞鍐欎笉褰卞搷鏁堢巼);15.鍏ㄥ眬鍙橀噺鍜岄潤鎬佸彉閲忛粯璁ゅ垵濮嬪寲涓哄叏闆朵笖浠呭垵濮嬪寲涓娆★紝灞閮ㄥ彉閲忛粯璁ゅ垵濮嬪寲涓烘湭瀹氫箟涓旀瘡娆¢兘浼氶噸鏂板垵濮嬪寲;16.閫掑綊璋冪敤鐨勬柟娉曚竴鑸瘮杈冪揣鍑戯紝浣嗘槸姣忔璋冪敤浼鍗曠嫭缁存姢璋冪敤...
  • 浠涔鍙瀵勫瓨鍣?浠涔堝彨绉讳綅瀵勫瓨鍣?
    绛旓細涓銆瀵勫瓨鍣 瀵勫瓨鍣ㄦ槸瀛樻斁鏁扮爜鐨勯昏緫閮ㄤ欢锛屽畠蹇呴』鍏峰鎺ユ敹鍜屽瘎瀛樻暟鐮佺殑鍔熻兘銆傞噰鐢ㄤ换浣曚竴绉嶇被鍨嬬殑瑙﹀彂鍣ㄥ潎鍙瀯鎴愬瘎瀛樺櫒銆傛瘡涓涓Е鍙戝櫒瀛樻斁涓浣嶄簩杩涘埗鏁版垨涓涓昏緫鍙橀噺锛鐢眓涓Е鍙戝櫒鏋勬垚鐨勫瘎瀛樺櫒鍙瓨鏀緉浣嶄簩杩涘埗鏁版垨n涓昏緫鍙橀噺鐨勫笺傚浘7.4.1鎵绀轰负74175鍥汥瑙﹀彂鍣ㄧ殑閫昏緫鍥俱傚綋鎺ユ敹鍛戒护 (鍗虫椂閽熻剦鍐睠P)...
  • C璇█涓鍙橀噺瀛樺偍绫诲瀷鏈夊摢浜
    绛旓細鑰岄潤鎬佸叏绋嬪彉閲忓嵈涓嶈兘鍐嶈璇存槑涓哄閮ㄧ殑,鍗冲彧鑳借鎵鍦ㄧ殑婧愭枃浠朵娇鐢ㄣ備笁銆乪xtern extern绉颁负澶栭儴鍙橀噺銆備负浜嗕娇鍙橀噺闄や簡鍦ㄥ畾涔夊畠鐨勬簮鏂囦欢涓彲浠ヤ娇鐢ㄥ,杩樿 琚叾瀹冩枃浠朵娇鐢ㄣ傚洜姝,蹇呴』灏嗗叏绋嬪彉閲忛氱煡姣忎竴涓▼搴忔ā鍧楁枃浠,姝ゆ椂鍙敤 extern鏉ヨ鏄庛傚洓銆乺egister register绉颁负瀵勫瓨鍣ㄥ彉閲銆傚畠鍙兘鐢ㄤ簬鏁村瀷鍜屽瓧绗﹀瀷鍙橀噺...
  • 姹囩紪璇█绋嬪簭璁捐棰
    绛旓細23銆丆PU鐨勬寚浠ゆ寚閽瀵勫瓨鍣ㄤ负: ,瀹冧笌 瀵勫瓨鍣ㄨ仈鐢ㄧ‘瀹氫笅涓鏉℃寚浠ょ殑鐗╃悊鍦板潃銆 24銆佸綋绔彛鍙封墺256鏃,浣跨敤IN鎴朞UT鎸囦护,蹇呴』鍏堝皢绔彛鍙锋斁鍒 瀵勫瓨鍣ㄣ 25銆佹搷浣滄暟:ARY[EAX*2]銆丒S:[TABLE+SI]銆丼UM[EBX][EDX]鍒嗗埆閲囩敤 銆 銆 瀵诲潃鏂瑰紡銆 26銆鍙橀噺鏈変笁灞炴,鍒嗗埆涓: 銆 銆 銆 27銆佸鏋滃湪瀹忓畾涔変綋璁剧疆灞閮ㄦ爣鍙...
  • 扩展阅读:作业扫一扫秒出答案 ... 寄存器变量的作用与 ... 免费作业拍照出答案 ... 下列变量说明中正确的是 ... 寄存器变量有什么特点 ... 变量寄存器v ... 寄存器变量如何声明 ... 属于连续变量的有哪些 ... 寄存器变量和自动变量区别 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网