C语言怎么获得数组的长度

C语言如何获得数组的长度?
C/C++ code

unsigned int unStartString[] = {0x89, 0x50, 0x4e, 0x47, 0x0d};



我想得到unStartString的长度5,如何实现?查了一下好像没有现成的函数,自己也想不出怎么得到。

------解决方案--------------------
总长度充溢单个的长度,即得数组的个数。

int len = sizeof(unStartString)/sizeof(unsigned int);

------解决方案--------------------
#define dim(arr) (sizeof(arr)/sizeof(arr[0])

直接传数组名,这是编译阶段可以这么搞,运行时动态获取数组长度是不行的,一般都是加一个数组长度的参数