Tanımsız davranış - Vikipedi
İçeriğe atla
Ana menü
Gezinti
  • Anasayfa
  • Hakkımızda
  • İçindekiler
  • Rastgele madde
  • Seçkin içerik
  • Yakınımdakiler
Katılım
  • Deneme tahtası
  • Köy çeşmesi
  • Son değişiklikler
  • Dosya yükle
  • Topluluk portalı
  • Wikimedia dükkânı
  • Yardım
  • Özel sayfalar
Vikipedi Özgür Ansiklopedi
Ara
  • Bağış yapın
  • Hesap oluştur
  • Oturum aç
  • Bağış yapın
  • Hesap oluştur
  • Oturum aç

İçindekiler

  • Giriş
  • 1 Örnekler
  • 2 Ayrıca bakınız
  • 3 Kaynakça

Tanımsız davranış

  • Deutsch
  • English
  • Español
  • فارسی
  • 日本語
  • 한국어
  • Norsk nynorsk
  • Norsk bokmål
  • Português
  • Русский
  • Српски / srpski
  • Українська
  • 中文
Bağlantıları değiştir
  • Madde
  • Tartışma
  • Oku
  • Değiştir
  • Kaynağı değiştir
  • Geçmişi gör
Araçlar
Eylemler
  • Oku
  • Değiştir
  • Kaynağı değiştir
  • Geçmişi gör
Genel
  • Sayfaya bağlantılar
  • İlgili değişiklikler
  • Kalıcı bağlantı
  • Sayfa bilgisi
  • Bu sayfayı kaynak göster
  • Kısaltılmış URL'yi al
  • Karekodu indir
Yazdır/dışa aktar
  • Bir kitap oluştur
  • PDF olarak indir
  • Basılmaya uygun görünüm
Diğer projelerde
  • Vikiveri ögesi
Görünüm
Vikipedi, özgür ansiklopedi

Bilgisayar programlamada, tanımsız davranış (İngilizce: Undefined behavior), kaynak kodunun yazıldığı programlama dilinin dil belirtiminde davranışı öngörülemez olarak öngörülen bir programın yürütülmesinin sonucudur. Bu, dil belirtiminin bir sonuç öngörmediği belirtilmemiş davranıştan ve platformun başka bir bileşeninin (ABI veya çevirmen belgeleri gibi) belgelenmesine başvuran uygulama tanımlı davranıştan farklıdır.

C programlama topluluğunda, tanımsız davranışlar comp.std.c'de derleyicinin istediği her şeyi yapmasına, hatta "burnunuzdan şeytanlar uçmasına" bile izin veren tanımsız davranışların açıklanmasından sonra esprili bir şekilde "burun şeytanları" olarak adlandırılabilir.[1]

Örnekler

[değiştir | kaynağı değiştir]

C programlama dilindeki yaygın tanımsız davranışlar ise: sayı aşımı, bellek dışına okuma/yazma, bellek güvenliğine aykırı durumlar.

Düz dizenin değiştirilmesi tanımsız davranışa yol açar:[2]

char *p = "vikipedi"; /* C programlama dilinde doğru, C++98/C++03'te kullanılmaması gerektiği belirtilmekte, C++11'den beri doğru bulunmaz */
p[0] = 'V'; /* tanımsız davranış zira düz dizeler sadece okunurdur */

Bir tam sayının sıfırla bölünmesi tanımsız davranıştır:[3]

int x = 1;
return x / 0; /* tanımsız davranış */

Bazı işaretçi işlemleri tanımsız davranışla sonuçlanabilir:[4]

int arr[4] = {0, 1, 2, 3};
int *p = arr + 5;  /* tanımsız davranış sınır dışına gitme */
p = NULL;
int a = *p;        /* tanımsız davranış NULL'un değerini öğrenmek */

Negatif bir sayıya mantıksal işlemler (sol kaydırma) uygulama, bir veri tipinin bit sayısından fazla kaydırma:

int x = -1 << 1;
/* 64 bit tam sayıyı 64 ile kaydırmak tanımsız davranıştır, maksimum 63 ile kaydırılabilir */
uint64_t vikipedi = 1ULL << 64;
return x;

Değer döndürmesi gereken bir fonksiyonda değer döndürmemek:

int f()
{
}  /* eğer fonksiyonun değeri kullanılır ise tanımsız davranış */

Ayrıca bakınız

[değiştir | kaynağı değiştir]
  • Derleyici

Kaynakça

[değiştir | kaynağı değiştir]
  1. ^ "nasal demons". 17 Temmuz 2014 tarihinde kaynağından arşivlendi. Erişim tarihi: 11 Kasım 2022. 
  2. ^ ISO/IEC (2003). ISO/IEC 14882:2003(E): Programming Languages - C++ §2.13.4 String literals [lex.string] para. 2
  3. ^ ISO/IEC (2003). ISO/IEC 14882:2003(E): Programming Languages - C++ §5.6 Multiplicative operators [expr.mul] para. 4
  4. ^ ISO/IEC (2003). ISO/IEC 14882:2003(E): Programming Languages - C++ §5.7 Additive operators [expr.add] para. 5
"https://tr.wikipedia.org/w/index.php?title=Tanımsız_davranış&oldid=34696774" sayfasından alınmıştır
Kategoriler:
  • Programlama dili uygulaması
  • C programlama dili
  • C++
  • Sayfa en son 06.20, 24 Ocak 2025 tarihinde değiştirildi.
  • Metin Creative Commons Atıf-AynıLisanslaPaylaş Lisansı altındadır ve ek koşullar uygulanabilir. Bu siteyi kullanarak Kullanım Şartlarını ve Gizlilik Politikasını kabul etmiş olursunuz.
    Vikipedi® (ve Wikipedia®) kâr amacı gütmeyen kuruluş olan Wikimedia Foundation, Inc. tescilli markasıdır.
  • Gizlilik politikası
  • Vikipedi hakkında
  • Sorumluluk reddi
  • Davranış Kuralları
  • Geliştiriciler
  • İstatistikler
  • Çerez politikası
  • Mobil görünüm
  • Wikimedia Foundation
  • Powered by MediaWiki
Tanımsız davranış
Konu ekle