The C standard C99 allows inline functions and variable-length-arrays. So following functions are valid in C99 compliant compilers.
Example for inline functions
C
Example for variable length arrays
C
inline int max(int a, int b)
{
if (a > b)
return a;
else
return b;
}
a = max (x, y);
/*
This is now equivalent to
if (x > y)
a = x;
else
a = y;
*/
float read_and_process(int n)
{
float vals[n];
for (int i = 0; i < n; i++)
vals[i] = read_val();
return process(vals, n);
}