mejor forma de comparar valores en un rango?

Existe alguna funcion que comprare si un valor está en un rango y no hacer multiples if?

if ((valor >100 && valor <200) )

si se que lo puedo hacer yo pero aveces son mas eficientes cuando vienen desde el core.

Y de paso si conocen donde leo todas las funciones ocultas del lenguaje que encuantro por google y no estan en el reference de arduino?

Una forma de comparar un rango pero no se si será mas eficiente que lo que propones es usando valor absoluto

Rango (a=100)-(b = 200) = 100

O sea si el valor absoluto de (X-a) esta dentro del rango será menor a (b-a)

abs(x-a)<(b-a)

tal vez sea tan o mas eficiente. No recuerdo. Se solía usar mucho en assembler.
Como he dejado de usarlo, no recuerdo pero hay una instrucción del ATMEGA para valor absoluto en entero claro.

Hola.
No creo que se pueda hacer algo más eficiente que la línea de código que propones. El ensamblador resultante ocupa muy pocas instrucciones. Si lo que quieres es algo más “cómodo”, puedes hacer un define (si usas una función ralentizarás porque debe ser llamada).
Saludos.

Gracias, a ambos.
La verdad es que si hice una sola funcion que promedia la lectura del teclado AD y pregunto si esta en el rango y devuelvo un byte con el numero de opcion y anda.

Cuando lo quise hacer mas prolijo desde el punto de vista de programador hace cualquier cosa.

Hola,
en C es muy rápida la búsqueda binaria con bsearch(), para ello tienes que ordenar primero la lista de elementos con qsort()

Perdon por no responder pero desde que cambiaron el sitio no recibo mas alertas de los post.