Not logged in. · Lost password · Register

Page:  previous  1  2 
zge
(〜 ̄▽ ̄)〜
Avatar
Member since Nov 2017
182 posts
In reply to post ID 160464
Quote by Destranix:
Macros klingen interessant.

Wobei ich mich frage, wie genau man das bewerkstelligen will?

Kommt auf die genaue Anwendung an. Ich finde (trotz den berechtigten und richtigen Einwänden von  Marcel[Inf]) zeug wie dieses immer wieder lustig:

#define withmem(type, var) for (void *var = malloc(sizeof(type)); var; free(var), var = NULL)

wo man dann Zeug macht wie

withmem(struct z, x) {
   /* arbeite mit x */
}

um "innerhalb von einem block" Speicher benutzen kann (kann für bessere Fehlerbehandlung erweitert werden.

Ich hab für SP2 ein ganzen macroset entwickelt für Fehlerbehandlungen, wo ich dann code schrieb wie

MUSTA(RN, var1, malloc, 2);
/* weist var1 allozierten speicher zu, generiert durch malloc(2), und verlässt die Funktion mit -1 andernfalls */

MUSTD(WC, struct xzy, var2, malloc, 32);
/* deklariert Variable var2 vom Typ struct xzy, analog zum vorherigem Beispiel und gibt Fehlermeldung + continue't bei einem Fehler */

Ich würde einem nicht empfehlen dieses zu nutzen, da einerseits ich das im Nachhinein anders gestaltet hätte, und da man leicht viele Fehler machen kann (was ich auch gemacht hab ^^). Wenn schon, würde die interessante Lektion sein macros als Möglichkeit anzusehen eine Sprache zu "erweitern", als ein umständliches Alias-System.
;;
This post was edited on 2019-05-14, 10:12 by zge.
Close Smaller – Larger + Reply to this post:
Verification code: VeriCode Please enter the word from the image into the text field below. (Type the letters only, lower case is okay.)
Smileys: :-) ;-) :-D :-p :blush: :cool: :rolleyes: :huh: :-/ <_< :-( :'( :#: :scared: 8-( :nuts: :-O
Special characters:
Page:  previous  1  2 
Go to forum
Datenschutz | Kontakt
Powered by the Unclassified NewsBoard software, 20150713-dev, © 2003-2011 by Yves Goergen