1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
|
#include "libtest.h"
EXTERN uint8_t
uint8_add(uint8_t a, uint8_t b)
{
return a + b;
}
EXTERN uint8_t*
uint8_inc(uint8_t *a, uint8_t b)
{
static uint8_t keeper;
keeper = *a += b;
return &keeper;
}
EXTERN uint8_t
uint8_sum(uint8_t list[10])
{
int i;
uint8_t total;
for(i=0,total=0; i<10; i++)
{
total += list[i];
}
return total;
}
EXTERN uint8_t
uint8_sum2(uint8_t *list, size_t size)
{
int i;
uint8_t total;
for(i=0,total=0; i<size; i++)
{
total += list[i];
}
return total;
}
EXTERN void
uint8_array_inc(uint8_t list[10])
{
int i;
for(i=0; i<10; i++)
{
list[i]++;
}
}
EXTERN uint8_t *
uint8_static_array(void)
{
static uint8_t foo[] = { 1,4,6,8,10,12,14,16,18,20 };
return foo;
}
typedef uint8_t (*closure_t)(uint8_t);
static closure_t my_closure;
EXTERN void
uint8_set_closure(closure_t closure)
{
my_closure = closure;
}
EXTERN uint8_t
uint8_call_closure(uint8_t value)
{
return my_closure(value);
}
|