typedef unsigned long uint32;
typedef unsigned long long uint64;
Esimerkkejä siitä, mitä syntyisi, jos allaolevan makron saisi määriteltyä oikein:
uint64 dv64_3(uint64 arg) {
dv64s(3);
uint64 r = arg / 3;
dv64e(3);
return r;
}
http://keskustelu.suomi24.fi/tiede-ja-teknologia/tietotekniikka/naytot-ja-naytonohjaimetuint64 dv64_5(uint64 arg) {
dv64s(5);
uint64 r = arg / 5;
dv64e(5);
return r;
}
uint64 dv64_7(uint64 arg) {
dv64s(7);
uint64 r = arg / 7;
dv64e(7);
return r;
}
// Makromäärittely: mitä ???:n paikalle pitäisi laittaa ?
#define routine(DIVISOR) uint64 dv64_???(uint64 arg) { dv64s(DIVISOR); uint64 r = arg / DIVISOR; dv64e(DIVISOR); return r; }
// jotta allaolevat toimisivat oikein?
routine(11)
routine(13)
routine(17)
routine(19)
routine(23)
// JOS makromäärittely saadaan oikein, niin allaolevat tuottaisivat vastaavaa koodia kuin ylimmät kolme valmiiksi kirjoitettua aliohjelmaa:
routine(3)
routine(5)
routine(7)
Onnistuuko tällainen funktioiden määrittely makrojen avulla ?
funktioiden määrittely makron avulla?
C_funktionAutomKirjoitus
1
56
Vastaukset
- C-tuki
kas näin:
#define routine(DIVISOR) uint64 dv64_##DIVISOR(uint64 arg) { dv64s(DIVISOR); uint64 r = arg / DIVISOR; dv64e(DIVISOR); return r; }
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
- 904636
- 293344
- 2013172
- 513007
- 242945
Miten hitsissä ulosoton asiakas?
On tää maailma kumma, tässä haisee suuri kusetus ja ennennäkemättömän törkeä *huijaus*! Miten to.monen kieroilu on edez3212776Kuule rakas...
Kerrohan minulle lempivärisi niin osaan jatkaa yhtä projektia? Arvaan jo melkein kyllä toki. Olethan sinä aina niin tyyl442687Kela valvoo lasten tilejä.
Tämä isoveli Kela kyttää jopa lasten yli 200,- euron rahat jotka on melko varmasti lahjaksi saatu. Se vaikuttaa perheen2352448Törmättiin tänään
enkä taaskaan osannut reagoida fiksusti. Menen aina lukkoon. Yksi asia on varma: tunteeni sinua kohtaan ovat edelleen v252246- 482203