有一个很基础的算法在做嵌入式开发中经常会使用到,那就是找最值,最常见的是以下两个宏:
#define max(a,b) ((a) > (b) ? (a) : (b))
#define min(a,b) ((a) < (b) ? (a) : (b))
max和min宏分别比较两个值谁大谁小,然后予以返回,很简单。
但如果是比较多个数据的数值,我们就需要数组里对元素的比较算法了,来看看程序实现:
find_buffer_max_min.c
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#define NR(x) (sizeof(x)/sizeof(x[0]))
#define u32 unsigned int
#define u8 unsigned char
//找数组的最小值
static u32 find_buffer_min(u32 buffer_value_min,u32 size,u32 *buffer)
{
u8 count = 0 ;
u32 min = buffer_value_min ;
//遍历数组size个字节
for(count = 0 ; count < size ; count++)
{
/