es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Se espera que ocurra la expresión “Expected expression occurs” en C.

Lo que estoy haciendo aquí es medir 8 bits de datos de un sensor IR. Aquí, la función Reflectance_Read(time) devuelve los datos del sensor IR de 8 bits en forma binaria.
Luego, tomando el valor de los sensores del medio, es decir, los bits número 3 y 4 de la variable Data como variables Right y Left, intenté devolver algo como OffRoad, OnRoad, etc.


#define OffRoad 0x0 #define OffToLeft 0x1 #define OffToRight 0x2 #define OnRoad 0x3 #define LeftCheck 0x10 #define RightCheck 0x08 uint8_t ReflectanceCenter(uint32_t time){ uint8_t Data; uint8_t Left, Right; Reflectance_Init(); Data = Reflectance_Read(time); Left = Data&0x10; Right = Data&0x08; if(0){} else if(Left==LeftCheck && Right==RightCheck) return OnRoad; else if(Left==LeftCheck && Right!=RightCheck) return OffToRight; else if(Left!=LeftCheck && Right==RightCheck) return OffToLeft; else if(Left!=LeftCheck && Right!=RightCheck) return OffRoad; return 0; }

Pero obtuve un error en la línea else if(Left==LeftCheck && Right==RightCheck) return OnRoad; diciendo error #29: expected an expression. No puedo entender qué está causando el error.


#define OFFROAD 0x0 #define OFFTOLEFT 0x1 #define OFFTORIGHT 0x2 #define ONROAD 0x3 #define LEFTCHECK 0x10 #define RIGHTCHECK 0x08

He cambiado mis definiciones #define a la forma correcta. ¡Mi problema está resuelto!

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    El error es causado por el uso de && en lugar de && en las declaraciones condicionales. && es un código de entidad de HTML para el carácter ‘&’ y no será reconocido como el operador lógico ‘&&’ en el lenguaje C. Reemplaza todas las instancias de && con && para solucionar el error.

Comments are closed.