Ylös Edellinen Seuraava Otsikkosivu Hakemisto Sisällys

7.4.3 Muita makro-"temppuja"

Koska C- kielen makro on todellakin vain tekstinkorvaus, muuttaa esikääntäjä seuraavan tekstin

c-alk\makroja.c - "turhia" makrotemppuja

	#include <stdio.h>
	#define ALKU  int main(void) {
	#define LOPPU return 0; }
	#define mk *100
	#define km *1000
	ALKU
	  double hinta_penneina,matka_m;
	  hinta_penneina = 5 mk;
	  matka_m        = 3.5 km;
	LOPPU

muotoon

	... kaikki stdio.h:ssa oleva koodi makrot käsiteltynä ...
	int main(void) {
	double hinta_penneina,matka_m;
	hinta_penneina = 5 *100;
	matka_m        = 3.5 *1000;
	return 0; }

Tosin tällaisia makrotemppuiluja kannattaa välttää ellei siitä saa suunnatonta ohjelman ylläpidollista hyötyä. Tarvittaessa pelkkä esikäännös voidaan tehdä vaikka Borland C++:lla:

	C:\OMAT\OHJELMOI\VESA>CPP makroja.c[RET]
	tulee tiedosto  makroja.i


Ylös Edellinen Seuraava Otsikkosivu Hakemisto Sisällys