Definición de una macro en C con un conjunto de operadores.
Publicado por Dan Rodríguez (1 intervención) el 26/02/2020 16:48:34
Hola buenas tardes,
Mi pregunta es la siguiente:
Estoy intentando declarar una macro que me englobe todos los operadores que necesitaré en mi programa de la siguiente forma:
#define OPERATORS {'+', '-','*', '/', '%', '^'}
Sin embargo, esta acción me da error y me avisa que es necesario que ponga algo antes de {, lo cual no tiene mucho sentido.
Sea el error que sea, me preguntaba si una vez declarada dicha macro bien, se podría hacer una comparación directa (con ==) de una variable tipo char con la macro o si tendría que hacer algo especial para compararlos. Gracias de antemano.
Por otro lado, y más por curiosidad, tengo el siguiente código:
Código que compila y se ejecuta sin problema pero que independientemente del carácter propuesto, da 0. Alguna explicación??
Muchas gracias!!
Mi pregunta es la siguiente:
Estoy intentando declarar una macro que me englobe todos los operadores que necesitaré en mi programa de la siguiente forma:
#define OPERATORS {'+', '-','*', '/', '%', '^'}
Sin embargo, esta acción me da error y me avisa que es necesario que ponga algo antes de {, lo cual no tiene mucho sentido.
Sea el error que sea, me preguntaba si una vez declarada dicha macro bien, se podría hacer una comparación directa (con ==) de una variable tipo char con la macro o si tendría que hacer algo especial para compararlos. Gracias de antemano.
Por otro lado, y más por curiosidad, tengo el siguiente código:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define OPERATORS '+', '-','*', '/', '%', '^'
int isOperator (char c) {
if(c!=OPERATORS)
return 0;
return 1;
}
int main(){
printf("%d", isOperator('+'));
printf("%d", isOperator('j'));
return 0;
}
Código que compila y se ejecuta sin problema pero que independientemente del carácter propuesto, da 0. Alguna explicación??
Muchas gracias!!
Valora esta pregunta


0