SORU
22 NİSAN 2009, ÇARŞAMBA


C kelime anlamı kısıtlamak nedir ?

Her zaman emin değildim, ne anahtar C kısıtlamak anlamına mı geliyor ?

İki veya daha fazla işaretçi işlevi verilen örtüşmüyor anlamına mı geliyor? Başka ne anlama geliyor?

CEVAP
27 Aralık 2009, Pazar


Onun kağıt, Memory Optimization, Christer Ericson yazan sırasında restrict parçası değil C standart henüz, tarafından desteklenen birçok Compiler ve öneriyor bu kullanım zaman kullanılabilir:

anahtar kelime kısıtlamak

! 1999 yeni/ISO C standardı ANSI

! C standart henüz değil, ama çok sayıda C derleyicileri tarafından desteklenen

! Bir ipucu sadece, bu yüzden hiçbir şey ve hala uygun olabilir

Kısıtlamak-nitelikli (veya referans) bir işaretçi...

! ...temelde bir. bu derleyici için söz veriyorum işaretçi kapsamı, işaretçi hedef olur sadece bu pointer (işaretçiler ve kopyalanan erişilebilir ondan).

Bunu destekleyen C derleyici muhtemelen C. ile aynı davranır

Detaylar için bu yazı bakın: Realistic usage of the C99 ‘restrict’ keyword?

Ericson kağıt göz gezdirmek için yarım saat ayırın, ilginç ve değerli bir zaman.

Edit

Ben de IBM AIX C/C compiler supports the __restrict__ keyword ... ... bulundu.

g da aşağıdaki program g temiz derler bu destek gibi görünüyor :

#include <stdio.h>

int foo(int * __restrict__ a, int * __restrict__ b) {
    return *a   *b;
}

int main(void) {
    int a = 1, b = 1, c;

    c = foo(&a, &b);

    printf("c == %d\n", c);

    return 0;
}

Ben de restrict kullanımı hakkında güzel bir makale buldum:

Demystifying The Restrict Keyword

Edit2

Genelinde özellikle C programları: kısıtlamak kullanımını ele alan bir makale koştu

Load-hit-stores and the __restrict keyword

Ayrıca, C also supports the __restrict keyword Microsoft Visual.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • adrianisen

    adrianisen

    25 Kasım 2009
  • EvilControllers

    EvilControll

    20 Ocak 2008
  • UlyssesForever's channel

    UlyssesForev

    28 ŞUBAT 2012