Hatalar, hatalar, sorular - sayfa 2863

 
Konstantin Efremov :

Numara. Bu tür yapılarda tek çözüm, göstergeyi bir sınıfa aktarmak ve onu sınıfın bir örneği olarak danışmana eklemek, ardından bir dizi hesaplama oluşturabilirsiniz.

İşin gerçeği, göstergenin kendisi, aynı türden herhangi bir temel göstergeyle çalışan ayrı bir sınıftır. Zor bir çözüm yoksa bu çok kötü.

 

Bir bulmaca sorum var.

İki resmi karşılaştırın ve bana neyin komik olduğunu söyleyin?

1. Uzman Danışman grafikte başlatılır.


2. İkincisi aynı danışmandır. Tek bir testten sonra grafik.


 
Söyle bana, bu mümkün mü?
 #define VALUE 10

#define MACROS

#ifdef MACROS
   // Нужно VALUE увеличить в два раза.
#endif
 
fxsaber :
Söyle bana, bu mümkün mü?
 #define VALUE 10

#define MACROS

#ifdef MACROS
   #ifdef VALUE
       #undef VALUE
   #endif
   #define VALUE 20
#endif

veya

 #define DEFAULT_VAL 10

#define VALUE DEFAULT_VAL

#define MACROS

#ifdef MACROS
   #ifdef VALUE
       #undef VALUE
   #endif
   #define VALUE ( 2 *DEFAULT_VAL)
#endif
 
Vladimir Simakov :

veya

VALUE'nin orijinal tanımına erişimim yok. Aksi takdirde, elbette, aynı seçeneği yapardım.

 
fxsaber :
Söyle bana, bu mümkün mü?

Nedense çalışmıyor:

 #define VALUE 10

#define MACROS

#ifdef MACROS
   // Нужно VALUE увеличить в два раза.
   #define TMP VALUE
   #undef VALUE
   #define VALUE (TMP* 2 )  // Если заменить на (10*2) - компилируется!
#endif

int OnInit ( void )
{
         Print ( "VALUE = " , VALUE ); //'VALUE' - undeclared identifier
         return ( INIT_FAILED );
}
 
Andrey Khatimlianskii :

Nedense çalışmıyor:

 #define INITIAL_VALUE 10
#define VALUE INITIAL_VALUE

#ifdef MACROS
   #define VALUE 2 *INITIAL_VALUE
#endif
muhtemelen sadece böyle
 
TheXpert :
muhtemelen aynen öyle

Ne yazık ki, sorun çözülmedi.

 
Forumda anket oluşturmak mümkün değildir. Oluştur'a tıkladıktan sonra ana sayfaya atar.
 
TheXpert :
muhtemelen aynen öyle

Peki neden çalışmıyor?

@ İlyas @Slava ?