icono letras

Lenguaje C--

Macros y utilidades

Núm. página

Reserva de posiciones

  1. simb
    cualquier símbolo
  2. esp
    espacio sin símbolos
  3. rcadena
    • ε
    • simbrcadena
  4. cadena
    simbrcadena
  5. simb_esp
    • simb
    • esp
  6. rlínea
    • ε
    • simb_esprlínea
  7. línea
    simbrlínea
  8. textoc
    • línea
    • líneatextoc
  9. texto
    • ε
    • textoc
  10. EOF
    final de texto
#definec cadena1 cadena2
ε

Efecto secundario

Hasta EOF, cualquier aparición de cadena se sustituye ‘cadena1’ por ‘cadena2’, siempre que ‘cadena1’ no forme parte de un ‘enombre’ mayor.

#definecc cadena1 cadena2
ε

Efecto secundario

Se sustituye igual que en #definec menos en texto1 en las siguientes situaciones:

){
   texto1
}

ó

:{
   texto1
}
  1. nombre
    identificador de K&R
  2. dims
    • ε
    • $ndims
  3. enombre
    nombredims
  4. stars
    • ε
    • *stars
  5. inds
    • ε
    • [n]inds
  6. var
    • starsnombreinds
    • starsnombre[]
  7. signo
    • +
    • -
    • ε
  8. racional
    [n$m]
  9. litp
    • 0
    • natural
    • racional
  10. lit
    signlitp
  11. list_lit
    • ε
    • lit
    • lit, list_lit
  12. asig
    • lit
    • {list_lit}
  13. inic
    • ε
    • = asig
  14. vari
    var inic
  15. list_inic
    • vari
    • vari, list_inic
  16. signed
    • signed
    • ε
  17. type
    • unsigned int
    • signed int
    • float
signed
ε
int
float
num_position
El expansor asocia un natural a num_position.
  1. Antes de empezar las expansiones le asocia 1.
  2. Si está asociado m, después de expandir una intrucción ‘unsigned int starsnombredims’ asocia n, siendo verdad n = m + 1.
unsigned int stars1nombre1dims1;
#definec nombre1 Yndims1
#definec nombre1dims1 Yn

donde n es el natural asociado a num_position.

float stars1nombre1dims1;
unsigned int stars1nombre1dims1;
#definec stars1Yn stars1Fn

donde n es el natural asociado a num_position.

type1 vari1, list_inic1;
type1 vari1;
type1 list_inic1;
type1 stars1enombre1 = lit1;
type1 stars1enombre1;
enombre1 = lit1;

Vectores

type1 stars1enombre1[1];
type1 stars1enombre1;
type1 stars1enombre1[n1];
type1 stars1enombre1[m];
type1 enombre1$n1;

donde n = m + 1 es verdad.

type1 stars1enombre1[1] = {};
type1 stars1enombre1 = 0;
type1 stars1enombre1[n] = {};
type1 stars1enombre1 = 0;
type1 stars1enombre1$$m = {};

donde:

  • n no es 1.
  • n = m + 1 es verdad.
type1 stars1enombre1[n1] = {lit1};
type1 stars1enombre1[n1] = {lit1,};
type1 stars1enombre1[n] = {lit1, list_lit1};
type1 stars1enombre1 = lit1;
type1 stars1enombre1$$m = {list_lit1};

donde n = m + 1 es verdad.

type1 stars1enombre1$$n1 = {lit1};
type1 stars1enombre1$$n1 = {lit1,};
type1 stars1enombre1$$1 = {};
type1 stars1enombre1$1 = 0;
type1 stars1enombre1$$1 = {lit1,};
type1 stars1enombre1$1 = lit1;
type1 stars1enombre1$$n1 = {};
type1 stars1enombre1$n1 = 0;
type1 stars1enombre1$$m = {};

donde:

  • n1 no es 1.
  • n1 = m + 1 es verdad.
type1 stars1enombre1$$n1 = {lit1, list_lit1};
type1 stars1enombre1$n1 = lit1;
type1 stars1enombre1$$m = {list_lit1};

donde:

  • n1 no es 1.
  • n1 = m + 1 es verdad.
type1 stars1enombre1[n][m1]
type1 stars1enombre1$m1[p]

donde p = m * n es verdad.

type1 stars1nombre1[] = {lit1};
type1 stars1enombre1[] = {lit1,};
type1 stars1nombre1[] = {lit1, list_lit1};
type1 stars1nombre1 = lit1;
type1 stars1nombre1$1 = {list_lit1};
type1 stars1nombre1$n = {};
ε
type1 stars1nombre1$n = {lit1};
type1 stars1nombre1$n = {lit1,};
type1 stars1nombre1$n = {lit1, list_lit1};
type1 stars1nombre1$n = lit1;
type1 stars1nombre1$m = {list_lit1};

donde m = n + 1 es verdad.

type1 stars1enombre1[][m1]
type1 stars1enombre1$m1[]
Núm. página