Ve hukuki hata C?
Başına 7.5,
değeri birkaç kütüphane fonksiyonları tarafından olumlu hata numarası olarak ayarlanmıştır. [hata] değiştirilebilir bir lvalue175 genişler) bu tip int, Hata bir makro veya bir tanımlayıcı dış bağlantı ile bildirilmiş olup olmadığı belirtilmemiş. Bir makro tanımı gerçek bir nesne erişmek için bastırılmış, ya da bir programın adı bu hata ile bir tanımlayıcı tanımlar, davranışı tanımsızdır.
175) makro hata nesnesinin tanımlayıcı olması gerekmez. Değiştirilebilir bir lvalue bir işlev çağrısı sonucunda genişletmek olabilir (örneğin, *hata()).
Bu errno
kısıtlama ihlali olmasını gerektirir için yeterli olup olmadığı açık değil. C dili vardır lvalues (gibi kayıt-depolama-sınıf değişkenleri; ancak bu sadece otomatik errno
değil, tanımlandığı gibi) için olan &
operatör kısıtlaması ihlali.
&errno
yasal C ise, sabit olmak için gerekli midir?
CEVAP
§6.5.3.2p1 belirtir
İşlenen tekli ve işleticisi olacak ya da bir fonksiyon göstergesi, sonucu [] veya tekli * operatör, veya bir lvalue belirtir bir nesne değil, bir bit alanı ve bildirilmedi ile register Depolama sınıfı belirteci.
Hangi Bendüşünüyorum&lvalue
Bu iki kategoride olmayan herhangi bir lvalue için iyi olduğu anlamına alınabilir. Ve sana söz, errno
olamaz ilan ile register Depolama sınıfı belirteci, ve bence (her ne kadar ben takip başvurular için Çek) olamaz var bir bit bu tür düzint
.
Spec &(errno)
C. yasal olması gerektiğini düşünüyorum
Ve yasal C hata, sabit olmak için gerekli midir?
Anlıyorum, kısmen noktası sağlayan, errno
bir makro (ve bu sebepten, örneğin abone olarak giriş) için izin için bir başvuru için iş parçacığı yerel depolama bu durumda, o-ecek kesinlikle sabit konuları arasında. Ve sürekli olmalı beklemek için herhangi bir neden göremiyorum. Sürece değeri errno
korur semantiği belirtilen görüyorum hiçbir neden sapık bir C kütüphanesi değil değiştirmek &errno
başvurmak için farklı bellek adresleri üzerinden ders programı -- örneğin tarafından boşaltma ve yeniden desteğini her zaman set errno
.
Son N hata değerleri kütüphane tarafından belirlenen halka bir tampon uygulayarak ve &errno
her zaman en son nokta hayal edin. Özellikle yararlı olacağını sanmıyorum, ama spec aykırı herhangi bir yol göremiyorum.
nasıl önlemek "dizin zaten hata&q...
"kimlik Doğrulama Başarısız oldu&...
hata, dize veya ikili veri eklemeye ça...
Eclipse hata: gerekli dolaylı olarak b...
Neden bir hata oluşturmak için CMAKE...