12.6. Stolpersteine


#define MAX_VAL 20 + 10
.
.
/* Das Resultat unten ist nicht 10*30, also 300,
 * sondern 10 * 20 + 10, mithin 210! */
printf("Das Resultat ist: %d", 10 * MAX_VAL);
/* besser wäre daher:
 * #define MAX_VAL (20 + 10)
 */

#define strcpy(S1, S2) my_strcpy(S1, S2, sizeof(S1))

#define SWAP(x,y) {	\
	int iTemp = x;	\
	 x = y;			\
	y = iTemp;		\
	 }
.
.
/* Fehler !	*/
printf("Vertausche: %d vs. %d", SWAP(iFirst, iSecond));

#define PANIC fputs("Fataler Fehler", stderr);\
	exit(EXIT_FAILURE);
 .
 .
 if( iCount > MAX_VALUE )
	PANIC;
 /* Dies wird expandiert zu:
  * if( iCount > MAX_VALUE )
  * 	fputs("Fataler Fehler", stderr);
  * 	exit(EXIT_FAILURE);
  * Da die gescheiften Klammern fehlen, hängt
  * nur fputs() von der if-Anweisung ab, exit()
  * wird aber immer ausgeführt!
  */