Picproje Elektronik Sitesi

SERBEST BÖLGE => Programlama ve Algoritma => Konuyu başlatan: bocek - 26 Aralık 2014, 15:37:25

Başlık: 40 yıllık yoğurtçuyum böyle 'case' görmedim.
Gönderen: bocek - 26 Aralık 2014, 15:37:25
Evet, uzun süredir C/C++ programlama ile uğraşır dururum, C dilinde case'in böyle kullanımını ilk defa gördüm.

    switch( state ){
      case 0 ... 15:                                          //  0 ... 15
                                        val = state;
                                        break;
      case 16 ... 31:                               // 16 ... 31
                                        val = DIMM_STEPS-1;
                                        break;
      case 32 ... 47:                             // 32 ... 47
                                        val = DIMM_STEPS*3-1-state;
                                        break;
      default:
                                        val = 0;
    }


Varmış böyle bir şey. Hala şoktayım :)

http://docs.oracle.com/cd/E19205-01/820-7598/giphi/index.html (http://docs.oracle.com/cd/E19205-01/820-7598/giphi/index.html)
http://stackoverflow.com/questions/5327896/how-to-use-ellipsis-in-cs-case-statement (http://stackoverflow.com/questions/5327896/how-to-use-ellipsis-in-cs-case-statement)
Başlık: Ynt: 40 yıllık yoğurtçuyum böyle 'case' görmedim.
Gönderen: LukeSkywalker - 26 Aralık 2014, 15:41:33
güzelmiş
Başlık: Ynt: 40 yıllık yoğurtçuyum böyle 'case' görmedim.
Gönderen: X-Fi - 26 Aralık 2014, 15:46:21
Hocam Keil derlemiyor bunu C99 standardında yok.
Başlık: Ynt: 40 yıllık yoğurtçuyum böyle 'case' görmedim.
Gönderen: mir_as82 - 26 Aralık 2014, 15:48:42
Hocam hem kod güzel hem senin başlık güzel:). Konyalısınız galiba.
Başlık: Ynt: 40 yıllık yoğurtçuyum böyle 'case' görmedim.
Gönderen: pea - 26 Aralık 2014, 15:50:01
gcc'nin özel bir eklentisi imiş. Standarta dahil değil.

Bir an aldığım/okuduğum derslerden şüphe etmiştim.
Başlık: Ynt: 40 yıllık yoğurtçuyum böyle 'case' görmedim.
Gönderen: mir_as82 - 26 Aralık 2014, 15:52:53
Hocam o zaman o şekilde kod yazmak sıkıntılı. Taşınabilirliği azaltıyor.
Başlık: Ynt: 40 yıllık yoğurtçuyum böyle 'case' görmedim.
Gönderen: bocek - 26 Aralık 2014, 15:53:31
Evet verdiğim stackoverflow linkinde de bahsetmiş birisi bundan,

"non-standard extension of gcc" demiş. c99'da bunu bulamazsınız demiş. Zaten kod örneğini avr-gcc için yazılmış bir uygulamadan almıştım.

Not: Konyalı değilim.
Başlık: Ynt: 40 yıllık yoğurtçuyum böyle 'case' görmedim.
Gönderen: hasankara - 26 Aralık 2014, 17:13:11
ben şöyle yapıyordum;

case 0:
case 1:
case 2:
// 3 durumdada olması istenen şeyler
break;
Başlık: Ynt: 40 yıllık yoğurtçuyum böyle 'case' görmedim.
Gönderen: ensarix - 16 Ocak 2015, 17:06:28
Hızla alakalı bir avantajı var galiba...