SORU
2 NİSAN 2013, Salı


C 11'de kullanılmayan parametre

Kullanılmayan parametre hakkında derleyici uyarı devre dışı bırakmak için c 03 ve daha öncesinde ben genellikle bu kodu kullanın:

#define UNUSED(expr) do { (void)(expr); } while (0)

Örneğin

int main(int argc, char *argv[])
{
    UNUSED(argc);
    UNUSED(argv);

    return 0;
}

Ama makrolar en iyi c uygulama öyle değil. Daha iyi bir çözüm c 11 standart ile görünüyor mu? Makrolar kurtulabilirim?

Her şey için teşekkürler!

Edit2: MadScientist önerilen iyi çözüm

template <typename T>
void ignore(T &&)
{ }

Birden çok parametre için Xeo çözüm

template<class... T> void unused(T&&...)
{ }

CEVAP
2 NİSAN 2013, Salı


Sadece parametre adları atlayabilirsiniz:

int main(int, char *[])
{

    return 0;
}

Ve ana durumunda, hatta parametreleri tamamen atlayabilirsiniz:

int main()
{
    // no return implies return 0;
}

Bakın "§ 3.6 Başlangıç ve Sonlandırma" C 11 Standart.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • HTC Tutorials

    HTC Tutorial

    21 EYLÜL 2010
  • MrRandomSong

    MrRandomSong

    29 Kasım 2009
  • Neil Cicierega

    Neil Ciciere

    22 Mart 2006

İLGİLİ SORU / CEVAPLAR