C語言的restrict關鍵字

2021-09-03 08:16:54 字數 381 閱讀 6287

restrict是c99標準引入的,它只可以用於限定和約束指標,並表明指標是訪問乙個資料物件的唯一且初始的方式.即它告訴編譯器,所有修改該指標所指向記憶體中內容的操作都必須通過該指標來修改,而不能通過其它途徑(其它變數或指標)來修改;這樣做的好處是,能幫助編譯器進行更好的優化**,生成更有效率的彙編**.

由restrict修飾的指標主要用於函式形參,或指向由malloc()分配的記憶體空間。

其中關鍵的彙編指令為:

movl (%rdx), %eax

addl %eax, (%rdi)

movl (%rdx), %eax

addl %eax, (%rsi)

restrict關鍵字宣告主要是幫助編譯器更好的進行**優化,實際上並不影響**的寫法。

C語言關鍵字restrict

簡介 關鍵字restrict只用於限定指標 該關鍵字用於告知編譯器,所有修改該指標所指向內容的操作全部都是基於該指標的,即不存在其他進行修改操作的途徑 這樣的後果是幫助編譯器進行更好的優化,生成更有效率的彙編 例如int i 0 int a i int b i 這樣會存在乙個問題。int foo i...

C語言關鍵字 restrict(一)

概念 restrict,c語言中的一種型別限定符 type qualifiers 用於告訴編譯器,物件已經被指標所引用,不能通過除該指標外所有其他直接或間接的方式修改該物件的內容。淵源 restrict是c99標準引入的,它只可以用於限定和約束指標,並表明指標是訪問乙個資料物件的唯一且初始的方式.即...

C語言中restrict關鍵字學習

簡介 restrict是 c99標準引入的,它只可以用於限定和約束 指標,並表明指標是訪問乙個 資料物件 的唯一且初始的方式.即它告訴 編譯器,所有修改該指標所指向記憶體中內容的操作都必須通過該指標來修改,而不能通過其它途徑 其它 變數或指標 來修改 這樣做的好處是,能幫助編譯器進行更好的優化 生成...