undeclared identifier' hatası nedir ve nasıl düzeltebilirim?

Bildirilmemiş tanımlayıcı hataları nelerdir? Yaygın nedenleri nelerdir ve bunları nasıl düzeltirim?

Örnek hata metinleri:

  • Visual Studio derleyicisi için: error C2065: 'cout' : undeclared identifier
  • GCC derleyicisi için: 'cout' undeclared (bu işlevdeki ilk kullanım)

Bunlar genellikle fonksiyon bildirimini içeren başlık dosyasını eklemeyi unutmaktan kaynaklanır, örneğin, bu program 'undeclared identifier' hatası verecektir:

Eksik başlık


int main() {
    std::cout 
Yorumlar (4)

C ve C++'da tüm isimler kullanılmadan önce bildirilmelidir. Bildirilmemiş bir değişken ya da fonksiyon adını kullanmaya çalışırsanız "undeclared identifier" hatası alırsınız.

Bununla birlikte, fonksiyonlar C'de (ve sadece C'de) özel bir durumdur, çünkü önce onları bildirmek zorunda değilsiniz. C derleyicisi, işlevin çağrıda olduğu gibi argüman sayısı ve türüyle var olduğunu varsayacaktır. Eğer gerçek fonksiyon tanımı buna uymuyorsa başka bir hata alırsınız. Fonksiyonlar için bu özel durum C++'da mevcut değildir.

Bu tür hataları, fonksiyonların ve değişkenlerin kullanılmadan önce bildirildiklerinden emin olarak düzeltirsiniz. printf` durumunda (veya C++'da) başlık dosyasını dahil etmeniz gerekir.

Standart fonksiyonlar için, örneğin bu referans sitesine bakmanızı ve kullanmak istediğiniz fonksiyonları aramanızı tavsiye ederim. Her fonksiyonun dokümantasyonu size hangi başlık dosyasına ihtiyacınız olduğunu söyler.

Yorumlar (0)

Bu, işlevi bildirmeden kullanmak gibidir. başlık dosyası fonksiyon printf(). Başlık dosyasını programınıza dahil edin, bunun için çözüm budur. Bazı kullanıcı tanımlı fonksiyonlar da kullanılmadan önce bildirilmediğinde hata verebilir. Eğer küresel olarak kullanılıyor, sorun yok.

Yorumlar (0)