首页 理论教育 AVR单片机开发入门-标准库和内存分配函数

AVR单片机开发入门-标准库和内存分配函数

时间:2023-10-17 理论教育 版权反馈
【摘要】:标准库头文件<stdlib.h>定义了宏NULL和RAND_MAX和新定义的类型size_t,并且描述了以下函数,注意在用户调用任意内存分配程序之前必须调用_NewHeap来初始化堆heap。

AVR单片机开发入门-标准库和内存分配函数

标准库头文件<stdlib.h>定义了宏NULL和RAND_MAX和新定义的类型size_t,并且描述了以下函数,注意在用户调用任意内存分配程序(比如..calloc malloc和realloc)之前必须调用_NewHeap来初始化堆heap。

●int abs(int i):返回i的绝对值。

●int atoi(char*s):将字符串s转换为整型数并返回该值,字符串s起始必须是整数型形式字符,否则返回0。

●double atof(const char*s):转换字符串s为双精度浮点数并返回该值,字符串s起始必须是浮点数形式字符串。

●long atol(char*s):转换字符串s为长整型的整数并返回该值,字符串s起始必须是长整型整数形式的字符,否则返回0。

●void*calloc(size_tnelem,size_tsize):分配“nelem”个数据项的内存连续空间,每个数据项的大小为size字节并且初始化为0,如果分配成功返回分配内存单元的首地址,否则返回0。

●void exit(status):终止程序运行,典型的是无限循环,它担任用户main函数的返回点。

●void free(void*ptr):释放ptr所指向的内存区。(www.xing528.com)

●void*malloc(size_tsize):分配size字节的存储区,如果分配成功则返回内存区地址,如果内存不够分配则返回0。

●void_NewHeap(void*start,void*end):初始化内存分配程序的堆栈,一个典型的调用是将符号_bss_end+1的地址用做“start”值,符号_bss_end定义为编译器用来存放全局变量和字符串的数据内存的结束,加1的目的是堆栈检查函数使用_bss_end字节存储为标志字节,这个结束值不能被放入堆栈中。举例如下:

●int rand(void):返回一个在0和RAND_MAX之间的随机数

●void*realloc(void*ptr,size_tsize):重新分配ptr所指向内存区的大小为size字节size,可比原来大或小,返回指向该内存区的地址指针

●void srand(unsigned seed):初始化随后调用的随机数发生器的种子数。参数seed是rand()的种子,用来初始化rand()的起始值。

●long strtol(char*s,char**endptr,int base):按照“base.”的格式,将“s”中起始字符转换为长整型数。如果“endptr”不为空,*endptr将设定“s”中转换结束的位置。

●unsigned long strtoul(char*s,char**endptr,int base):除了返回类型为无符号长整型的整数外,其余同“strtol”。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈