Onko mahdollista tehdä makro joka vaihtaa argumenttien x ja y sisällöt keskenään ilman apumuuttujia?
Alla oleva toimii mutta miten saisi vielä tuon
int t:n pois ja toimisi edelleen??
#define swapi(x,y) { int t=x; x=y; y=t; }
Alla oleva toimii mutta miten saisi vielä tuon
int t:n pois ja toimisi edelleen??
#define swapi(x,y) { int t=x; x=y; y=t; }
Vastaukset 2
Vanhimmat
No sehän onnistui a^b jne ..
Ihan vaan tuli mieleen, että jos on mitenkään mahdollista, vältä noiden makrojen tekemistä. Ne yleensä johtaa aina ongelmiin (vaikka tuokin oli aika yksinkertainen).
Eikä noissa tarkasteta muuttujien tyyppiä. Yleensä funktio on parempi vaihtoehto.
Jos teet c :lla tuota niin käytä:
#include
..
std::swap(a, b);