Eski c/C++ kodunun, kodlar yerine tamsayılar yerine tamsayı kullanıldıkları yerde temizlenmesi, işlev bildiriminin düzgün bir şekilde yeniden yapılandırıldığı, ancak gövdenin olmadığı yerleri bulmak sıkıcıdır. Örneğin.Herhangi bir c/C++ derleyici var mı (veya hata veren) veya int dönüştürebilirsiniz?
enum important {
little = 1,
abit = 2,
much = 3
};
void blah(int e)
{
// magic stuff here
}
void boing(int e) { ... }
void guck(important e)
{
switch (e) {
case 3: // this would be a good place for a warning
blah(e); // and this
break;
default:
boing((int)e); // but this is OK (although imperfect and a warning would be acceptable)
break;
}
}
Açıklama Ekleme/her numaralama tip modifiye ya da orada çok çok sayıda farklı enums, bu nedenle bu durum tercih edilmez, ancak kabul edilebilir bir çözüm olabilir olarak onları aynı zamanda iş adil bir miktar olacaktır kodu içinde arama.
Ana derleyicilerden veya diğer araçlardan (gcc çoğunlukla) veya platformdan (çoğuda) bulunmak için ona ihtiyacım yok, bunu elle birkaç kez çalıştırabilirim, ancak bu bir şey değil çok ezoterik veya pahalı.
gcc bunu mükemmel şekilde ele almıyor mu? G ++ kullanıyorum ve her zaman açıklanan uyarıları görüyorum. Saf C derleyicisi farklı davranır mı? – Basilevs
Hayır, bu kodu derleyerek (eksi ... ve artı boş bir ana()): g ++ -Wall test.cpp 0 uyarı verir. Int'ten enum'a terfi etmek için uyarılır, ancak başka şekilde değil. Başka şekilde çalışıyorsanız, lütfen bana komut satırınızı verin. lütfen ... –