SORU
17 EYLÜL 2013, Salı


Ne "..." C kod anahtarı-durumda

Burada /usr/src/linux-3.10.10-1-ARCH/include/linux/printk.h kod parçası:

static inline int printk_get_level(const char *buffer)
{
  if (buffer[0] == KERN_SOH_ASCII && buffer[1]) {
    switch (buffer[1]) {
    case '0' ... '7':
    case 'd':  /* KERN_DEFAULT */
      return buffer[1];
    }
  }
}

Operatör bir tür. Neden "C Programlama Dili" değil o söz?

CEVAP
17 EYLÜL 2013, Salı


Bugcc extension called case rangesBu belgede açıklanmıştır nasıl bir

Tek bir durumda ardışık değerleri bir dizi etiket, bu gibi belirtebilirsiniz:

case low ... high:

gcc extensions here tam bir listesini bulabilirsiniz. clang also supports this gibi çalışın gcc ile uyumlu kalmak gibi görünüyor. Bu standart olmayan, örneğin ya da herhangi bir şekilde gcc clang -pedantic bayrağı kullanarak sizi uyarır:

warning: range expressions in switch statements are non-standard [-Wpedantic]

İlginç Linux kernel uses a lot of gcc extensions makalede uzantıları yer almayan bir deyim ifadeler olduğunu unutmayın.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • brokenbellsVEVO

    brokenbellsV

    11 EYLÜL 2009
  • Liz Morgan

    Liz Morgan

    4 Aralık 2011
  • NightShader1

    NightShader1

    25 Temmuz 2006