首页 理论教育 AVR单片机标准库及内存函数

AVR单片机标准库及内存函数

时间:2023-11-20 理论教育 版权反馈
【摘要】:标准库头文件定义了宏NULL和RAND_MAX以及新定义的类型size_t,并且描述了下列函数。注意在调用任意内存分配程序之前,必须调用_NewHeap来初始化堆heap。如内存不够分配则返回0。void_NewHeap 初始化内存分配程序的堆,一个典型的调用是将符号_bss_end+1的地址用作“start”值,符号_bss_end定义为编译器用来存放全局变量和字符串的数据内存的结束,加1的目的是堆栈检查函数,使用_bss_end字节存储为标志字节,这个结束值不能被放入堆栈中。

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_t nelem,size_t size) 分配“nelem”个数据项的内存连续空间,每个数据项的大小为size字节并且初始化为0。如果分配成功返回分配内存单元的首地址,否则返回0。

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

void free(void*ptr) 释放ptr所指向的内存区。

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

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

extern char_bss_end;(www.xing528.com)

_New Heap(&_bss_end+1,&_bss_end+201);

初始化200B大小的堆

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

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

void srand(unsigned seed) 初始化随后调用的随机数发生器的种子数。

long strtol(char*s,char**endptr,int base)

按照“base.”的格式转换“s”中起始字符为长整型数,如果“endptr”不为空,*endptr将设定“s”中转

换结束的位置。

unsigned long strtoul(char*s,char**endptr,int base)

除了返回类型为无符号长整型数外,其余同“strtol”。

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

我要反馈