Un exemplu de utilizare a macrourilor cu argumente
-------- ----- ------ -------- ----- ------ -
Vom relua problema de mai sus, dar vom folosi mac 22422x2322w rouri cu argumente. Vom scrie programul in doua fisiere, un fisier header "sort.h" si un fisier "sort.c". Fisierul header va contine directive de precompilare (#include, #define), precum si prototipuri pentru functiile noastre. Fisierul "sort.h" este:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#define M 32
#define N 11
#define parte_fractionara(x) (x - (int) x)
#define caracter_aleator() (rand() % 26 + 'a')
#define real_aleator() (rand() % 100 / 10.0)
#define INIT(array, sz, type) \
if (strcmp(type, "char") == 0) \
for (i = 0; i < sz; ++i) \
array[i] = caracter_aleator(); \
else \
for (i = 0; i < sz; ++i) \
array[i] = real_aleator();
#define PRINT(array, sz, sir_control) \
for (i = 0; i < sz; ++i) \
printf(sir_control, array[i]); \
putchar('\n')
int compara_partea_fractionara(const void *, const void *);
int lexico(const void *, const void *);
Acum, vom scrie restul codului pentru programul nostru, si anume fisierul "sort.c".
#include "sort.h"
void main()
int compara_partea_fractionara(const void *vp, const void *vq)
int lexico(const void *vp, const void *vq)
|