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

  • macpulenta

    macpulenta

    9 EYLÜL 2006
  • NPR

    NPR

    22 NİSAN 2006
  • Paulo Bautista

    Paulo Bautis

    21 Aralık 2008