SORU
6 EKİM 2014, PAZARTESİ


ve parantez olmadan başka

Aşağıdaki kodu derlemek için bekliyorum. Çınlama ve VC else ile hat üzerinde bana bir hata verir.

void MyFunction(std::int32_t& error)
{
   std::int32_t variable = 0;
   if(GetSomething())
      error = EOK;
   else
      error = ERROR;
}

Eğer error = EOK;, etrafında kaşlı ayraçlar sonra koyarsam derler. Neden VC yazıyor:

eğer eşleşen başka olmadan yasadışı

?


Tam benim kod aşağıda, std değiştirme::uint32_t bir typedef ile. Hala VC aynı hatayı veriyor .

using sint32 = int;

#define ERROR 5;
#define EOK 0;

bool GetSomething();

void MyFunction(sint32& error)
{
   sint32 variable = 0;
   if (GetSomething())
      error = EOK;
   else
      error = ERROR;
}

CEVAP
6 EKİM 2014, PAZARTESİ


Aşağıdaki gibi EOK tanımına

#define EOK 0;

bunu zorla başka ulaşılmadan-deyim, bir eşleştirme eğer olmadan bir başka yapım sona erer, çünkü bu tür bir hata neden olur. Derleyici makro değişiminden sonra bu kodu görür

if(GetSomething())
    error = 0;;
else

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Khan Academy

    Khan Academy

    17 Kasım 2006
  • Paste Magazine

    Paste Magazi

    28 AĞUSTOS 2008
  • PhoneBuff

    PhoneBuff

    10 HAZİRAN 2011