29 EYLÜL 2012, CUMARTESİ
Bu durumun bir parçası olarak bir değişken tanımlama-açıklama mı?
Bu izin, o sadece şok oldum,:
if( int* x = new int( 20 ) )
{
std::cout << *x << "!\n";
// delete x;
}
else
{
std::cout << *x << "!!!\n";
// delete x;
}
// std:cout << *x; // error - x is not defined in this scope
Bu standart tarafından izin verilen veya sadece bir derleyici uzantısı değil mi?
CEVAP
29 EYLÜL 2012, CUMARTESİ
Bu C 98'den beri belirtimi tarafından izin verilir.
Bölüm 6.4 "Seçim tablolar":
Bir isim tarafından sunulan bir bildiride bir durum (ya da yürürlüğe giren tip-belirleyici-seq veya Bildiricisi durumu) kapsamında noktasına ilanı sonuna kadar substatements tarafından kontrol edilen durum.
Aşağıdaki örnek, aynı bölümden
if (int x = f()) {
int x; // ill-formed, redeclaration of x
}
else {
int x; // ill-formed, redeclaration of x
}
Bunu Paylaş:
Neden anonim fonksiyon tanımlama ve de...
C için bir sebep mi'#; dosyalarda ...
Nasıl bir BASH değişken bir komut çıkt...
Bir değişken tanımlama veya ihracat ol...
JavaScript bir fonksiyon içinde global...