SORU
30 Aralık 2008, Salı


C "dosyalarda grup" döngü yapısı var mı?

Hemen hemen tüm dilleri foreach döngü (fonksiyon) ya da benzer bir şey var. Eğer C biri var mı merak ediyorum? Bazı örnek kod gönderebilir misiniz?

CEVAP
30 Aralık 2008, Salı


C dosyalarda grup yok, ama makrolar sık taklit etmek için kullanılır:

#define for_each_item(item, list) \
    for(T * item = list->head; item != NULL; item = item->next)

Ve gibi kullanılabilir

for_each_item(i, processes) {
    i->wakeup();
}

Bir dizi üzerinde yineleme yapmak da mümkün:

#define foreach(item, array) \
    for(int keep = 1, \
            count = 0,\
            size = sizeof (array) / sizeof *(array); \
        keep && count != size; \
        keep = !keep, count  ) \
      for(item = (array)   count; keep; keep = !keep)

Ve gibi kullanılabilir

int values[] = { 1, 2, 3 };
foreach(int *v, values) {
    printf("value: %d\n", *v);
}

Edit: C çözüm olarak ilgilendi, C yerlisi olduğu için-her "tabanlı range" . sözdizimi

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Hak5DarrensVlog

    Hak5DarrensV

    11 EYLÜL 2009
  • Hallucination Land

    Hallucinatio

    14 Ocak 2011
  • midomansour

    midomansour

    19 EYLÜL 2009