makro değiştirme - bu, tüm bu kodun (tanımlanan) her seferinde programın belirtilen yerinde değiştirileceği anlamına gelir. Yani aslında - bir fonksiyon yapıp onu çağırmak yerine, bu fonksiyonu bir kod parçası gibi birçok kez kodun içine kopyalarsınız.
Ve bir makrodan dönüş yaparsanız, bu, bu makronun eklendiği tüm kodlardan bir dönüş olur.
makro değiştirme - bu, tüm bu kodun (tanımlanan) her seferinde programın belirtilen yerinde değiştirileceği anlamına gelir. Yani aslında - bir fonksiyon yapıp onu çağırmak yerine, bu fonksiyonu bir kod parçası gibi birçok kez kodun içine kopyalarsınız.
Ve bir makrodan dönüş yaparsanız, bu, bu makronun eklendiği tüm kodlardan bir dönüş olur.
Bir makro işlevi yazmanın mümkün olmadığı ortaya çıktı.
#define p_func(NAME) Print ( "This is ##NAME" )
//+------------------------------------------------------------------+voidOnStart ()
{
int QWERTY;
int zxcvbn;
p_func(QWERTY);//This is ##NAME
p_func(zxcvbn);//This is ##NAME
}
Seric29 : Arkadaşlar ben bir makro makrosu (a) yazmak istiyorum, şöyle çalışacak: a 1'e eşitse makro int türünden herhangi bir değer döndürür, a 2'ye eşitse makro geri döner a, 3'e eşitse , double türündeki herhangi bir değer, o zaman makro herhangi bir bool değeri döndürür. Bunu yapabilmek mümkün mü?
Seric29 : Arkadaşlar ben bir makro makrosu (a) yazmak istiyorum, şöyle çalışacak: a 1'e eşitse makro int türünden herhangi bir değer döndürür, a 2'ye eşitse makro geri döner a, 3'e eşitse , double türündeki herhangi bir değer, o zaman makro herhangi bir bool değeri döndürür. Bunu yapabilmek mümkün mü?
µl'de GET_EXPAND olmadan yapabilirsiniz, ancak bu µl'ye özgü çöp veya daha doğrusu öyle. Eh, makrolar, virgül operatörünün olmaması nedeniyle çok sınırlıdır (koltuk değnekleriyle olsa da ...).
Not: Pekala, bunların hepsi elbette derleme zamanı.
ZZY: Bu arada, eğer bir cast operatörü varsa, bunu yapabilirsiniz:
class Q{
public :
operatorint ();
operatordouble ();
operatorbool ();
};
...
Q q;
int i = q; // call operator intdouble d = q; // call operator doublebool b = q; // ...
Makrolar değer döndürür mü?
Peki burada bir örnek kod
Peki burada bir örnek kod
makro değiştirme - bu, tüm bu kodun (tanımlanan) her seferinde programın belirtilen yerinde değiştirileceği anlamına gelir. Yani aslında - bir fonksiyon yapıp onu çağırmak yerine, bu fonksiyonu bir kod parçası gibi birçok kez kodun içine kopyalarsınız.
Ve bir makrodan dönüş yaparsanız, bu, bu makronun eklendiği tüm kodlardan bir dönüş olur.
makro değiştirme - bu, tüm bu kodun (tanımlanan) her seferinde programın belirtilen yerinde değiştirileceği anlamına gelir. Yani aslında - bir fonksiyon yapıp onu çağırmak yerine, bu fonksiyonu bir kod parçası gibi birçok kez kodun içine kopyalarsınız.
Ve bir makrodan dönüş yaparsanız, bu, bu makronun eklendiği tüm kodlardan bir dönüş olur.
Bir makro işlevi yazmanın mümkün olmadığı ortaya çıktı.
Bir makro işlevi yazmanın mümkün olmadığı ortaya çıktı.
makro değiştirme, bir metnin başka bir metinle değiştirilmesidir (kaynak kodunda), tanım gereği bir işlev olamaz.
Yeni bir satıra geçmeden 2 makro nasıl yazılır, bu satır sayısını büyük ölçüde artırır, bu da programı büyük ölçüde uzatır, işte bir örnek
Makro B artık çalışmıyor.
değişken adını bir dizgeye dönüştürmek mümkün mü?
şu şekilde çalışmıyor:
Arkadaşlar ben bir makro makrosu (a) yazmak istiyorum, şöyle çalışacak: a 1'e eşitse makro int türünden herhangi bir değer döndürür, a 2'ye eşitse makro geri döner a, 3'e eşitse , double türündeki herhangi bir değer, o zaman makro herhangi bir bool değeri döndürür. Bunu yapabilmek mümkün mü?
Ne için? Ne için? Onu nerede kullanacaksın?
değişken adını bir dizgeye dönüştürmek mümkün mü?
Arkadaşlar ben bir makro makrosu (a) yazmak istiyorum, şöyle çalışacak: a 1'e eşitse makro int türünden herhangi bir değer döndürür, a 2'ye eşitse makro geri döner a, 3'e eşitse , double türündeki herhangi bir değer, o zaman makro herhangi bir bool değeri döndürür. Bunu yapabilmek mümkün mü?
µl'de GET_EXPAND olmadan yapabilirsiniz, ancak bu µl'ye özgü çöp veya daha doğrusu öyle. Eh, makrolar, virgül operatörünün olmaması nedeniyle çok sınırlıdır (koltuk değnekleriyle olsa da ...).
Not: Pekala, bunların hepsi elbette derleme zamanı.
ZZY: Bu arada, eğer bir cast operatörü varsa, bunu yapabilirsiniz: