El compilador XC8 té nombroses funcions (principalment matemàtiques) disponibles. En aquesta pàgina farem un resum de la majoria. Per trobar informació detallada de totes les funcions disponibles podeu consultar l'apèndix A de la guia d'usuari del compilador XC8 al web de Microchip.
Per fer servir una funció cal incloure la biblioteca corresponent. Per exemple, per incloure la biblioteca stdlib.h faríem:
... #include <stdlib.h> ...
Important: Aquestes funcions són genèriques i quan es compilen poden implicar una important ocupació de memòria, tant de dades com de programa. Abans de fer servir una funció, convé preguntar-se si realment és necessària. Per exemple, la funció pow està dissenyada per implementar tota mena de potències i, per tant, ocupa molta memòria; si hem d'elevar un nombre al quadrat, és preferible multiplicar-lo per ell mateix, operació que requereix molta menys memòria.
| Funció | Utilització | Tipus | Biblioteca | Arguments | Comentaris | |
| Nom | Tipus | |||||
| abs | Valor absolut | int | stdlib.h | x | int | |
| ceil | Arrodoniment per excés | double | math.h | x | double | |
| exp | Exponencial ex | double | math.h | x | double | |
| fabs | Valor absolut | double | math.h | x | double | |
| floor | Arrodoniment per defecte | double | math.h | x | double | |
| fmod | Residu de la divisió amb reals | double | math.h | x | double | Retorna x - m · y
m és la part entera del resultat de x/y |
| y | double | |||||
| labs | Valor absolut | long | math.h | x | long | |
| log | Logaritme natural | double | math.h | x | double | |
| log10 | Logaritme decimal | double | math.h | x | double | |
| pow | Potència xy | double | math.h | x | double | No recomanable per elevar a exponents enters petits,
en aquests casos és millor multiplicar |
| y | double | |||||
| rand | Valor pseudoaleatori entre 0 i 32767 | int | stdlib.h | |||
| round | Arrodoniment a l'enter més proper | double | math.h | x | double | |
| sqrt | Arrel quadrada | double | math.h | x | double | L'argument ha de ser positiu |
| srand | Inicialitza rand amb una llavor | void | stdlib.h | x | unsigned int | |
| trunc | Suprimeix els decimals del nombre | double | math.h | x | double | |
| Funció | Utilització | Tipus | Biblioteca | Arguments | Comentaris | |
| Nom | Tipus | |||||
| acos | Arccosinus | double | math.h | x | double | Angle en radians |
| asin | Arcsinus | double | math.h | x | double | Angle en radians |
| atan | Arctangent | double | math.h | x | double | Angle en radians |
| atan2 | Arctangent(y/x) | double | math.h | y | double | |
| x | double | |||||
| cos | Cosinus | double | math.h | x | double | Angle en radians |
| cosh | Cosinus hiperbòlic | double | math.h | x | double | |
| sinh | Sinus hiperbòlic | double | math.h | x | double | |
| tanh | Tangent hiperbòlica | double | math.h | x | double | |
| sin | Sinus | double | math.h | x | double | Angle en radians |
| tan | Tangent | double | math.h | x | double | Angle en radians |
| Funció | Utilització | Tipus | Biblioteca | Arguments | Comentaris | |
| Nom | Tipus | |||||
| isalnum | Mira si el caràcter és alfanumèric, o sigui 0-9, a-z o A-Z | int | ctype.h | c | char | Si ho és dona un valor que s'interpreta com a cert, sinó un que s'interpreta com a fals |
| isalpha | Mira si el caràcter és alfabètic, o sigui a-z o A-Z | int | ctype.h | c | char | Si ho és dona un valor que s'interpreta com a cert, sinó un que s'interpreta com a fals |
| isascii | Mira si el caràcter és un ASCII de 7 bit | int | ctype.h | c | char | Si ho és dona un valor que s'interpreta com a cert, sinó un que s'interpreta com a fals |
| iscntrl | Mira si el caràcter és un dels de control, o sigui no imprimible | int | ctype.h | c | char | Si ho és dona un valor que s'interpreta com a cert, sinó un que s'interpreta com a fals |
| isdig | Mira si el caràcter és un dígit, o sigui 0-9 | int | ctype.h | c | char | Si ho és dona un valor que s'interpreta com a cert, sinó un que s'interpreta com a fals |
| isdigit | Mira si el caràcter és un dígit, o sigui 0-9 | int | ctype.h | c | char | Si ho és dona un valor que s'interpreta com a cert, sinó un que s'interpreta com a fals |
| islower | Mira si el caràcter és una lletra minúscula, o sigui a-z | int | ctype.h | c | char | Si ho és dona un valor que s'interpreta com a cert, sinó un que s'interpreta com a fals |
| isprint | Mira si el caràcter és un espai, una lletra, una xifra o bé un d'aquests: ! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ ` { | } ~ |
int | ctype.h | c | char | Si ho és dona un valor que s'interpreta com a cert, sinó un que s'interpreta com a fals |
| isgraph | Mira si el caràcter és una lletra, una xifra o bé un d'aquests: ! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ ` { | } ~ |
int | ctype.h | c | char | Si ho és dona un valor que s'interpreta com a cert, sinó un que s'interpreta com a fals |
| ispunct | Mira si el caràcter és un d'aquests: ! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ ` { | } ~ |
int | ctype.h | c | char | Si ho és dona un valor que s'interpreta com a cert, sinó un que s'interpreta com a fals |
| isspace | Mira si el caràcter és un espai, un tabulador o un salt de línia | int | ctype.h | c | char | Si ho és dona un valor que s'interpreta com a cert, sinó un que s'interpreta com a fals |
| isupper | Mira si el caràcter és una lletra majúscula, o sigui A-Z | int | ctype.h | c | char | Si ho és dona un valor que s'interpreta com a cert, sinó un que s'interpreta com a fals |
| isxdigit | Mira si el caràcter és un dígit hexadecimal, o sigui 0-9, a-f o A-F | int | ctype.h | c | char | Si ho és dona un valor que s'interpreta com a cert, sinó un que s'interpreta com a fals |
| tolower | Si l'argument és una lletra majúscula torna la minúscula que li correspon, en cas contrari retorna l'argument |
char | ctype.h | c | int | |
| toupper | Si l'argument és una lletra minúscula torna la majúscula que li correspon, en cas contrari retorna l'argument |
char | ctype.h | c | int | |
| toascii | Converteix el valor a ASCII de 7 bits posant a 0 els altres bits | char | ctype.h | c | int | |
| Funció | Utilització | Tipus | Biblioteca | Arguments | Comentaris | |
| Nom | Tipus | |||||
| CLRWDT | Reinicia el temporitzador de vigilància | void | xc.h | |||
| di | Activa les interrupcions | void | xc.h | |||
| ei | Desactiva les interrupcions | void | xc.h | |||
| NOP | Pausa de tres cicles del rellotge de programa | void | xc.h | |||
| SLEEP | Posa el microcontrolador en mode d'espera | void | xc.h | |||

Aquesta obra d'Oriol Boix està llicenciada sota una llicència no importada Reconeixement-NoComercial-SenseObraDerivada 3.0.