複製鏈接
請複製以下鏈接發送給好友

Register

鎖定
Register:是緩存器的意思,其功能是能夠在高速下達到同步的目的。
中文名
寄存器
外文名
Register
其他含義
register修飾符
應    用
編程

Register名詞定義

register
n.
記錄,登記簿,登記,註冊,寄存器
【語言學】語域(即當前語境的最適合語言)
vt.
記錄,登記,註冊,提示,把...掛號
vi.
登記,註冊,掛號

Register修飾符

register修飾符暗示編譯程序相應的變量將被頻繁地使用,如果可能的話,應將其保存在CPU寄存器中,以加快其存儲速度。例如下面的內存塊拷貝代碼,
/* Procedure for the assignment of structures, */
/* if the C compiler doesn't support this feature */
#ifdef NOSTRUCTASSIGN
memcpy (d, s, i)
{
	register char *d;
	register char *s;
	register int i;
	while (i--)
	*d++ = *s++;
}
#endif
但是使用register修飾符有幾點限制。
首先,register變量必須是能被CPU所接受的類型。這通常意味着register變量必須是一個單個的值,並且長度應該小於或者等於整型的長度。不過,有些機器的寄存器也能存放浮點數
其次,因為register變量可能不存放在內存中,所以不能用“&”來獲取register變量的地址。
由於寄存器的數量有限,而且某些寄存器只能接受特定類型的數據(如指針和浮點數),因此真正起作用的register修飾符的數目和類型都依賴於運行程序的機器,而任何多餘的register修飾符都將被編譯程序所忽略。
在某些情況下,把變量保存在寄存器中反而會降低程序的運行速度。因為被佔用的寄存器不能再用於其它目的;或者變量被使用的次數不夠多,不足以裝入和存儲變量所帶來的額外開銷。
早期的C編譯程序不會把變量保存在寄存器中,除非你命令它這樣做,這時register修飾符是C語言的一種很有價值的補充。然而,隨着編譯程序設計技術的進步,在決定哪些變量應該被存到寄存器中時,C編譯環境能比程序員做出更好的決定。實際上,許多編譯程序都會忽略register修飾符,因為儘管它完全合法,但它僅僅是暗示而不是命令。

Register註冊公司

Register是美國較為知名的域名註冊公司,百度公司的域名曾經在此公司註冊,後來由於該公司的安全漏洞導致百度域名被黑,事情的結局是Register公司已經對百度全部損失做出賠償,並正式向百度公司發佈公開道歉聲明,對由於自身安全漏洞遭黑客攻擊導致百度域名無法訪問而給百度公司帶來的嚴重影響表示歉意。