admin 管理员组文章数量: 887021
2023年12月23日发(作者:类似mydockfinder)
函数原形的头文件读者可参考返回非整型值的函数assert.h-assert(),声明宏ctype.h–字符类型函数float.h–浮点数原形limits.h–数据类型的大小和范围math.h–浮点运算函数stdarg.h–变量参数表.stddef.h–标准定义stdio.h–标准输入输出IO函数stdlib.h–包含内存分配函数的标准库string.h–字符串处理函数3字符类型库下列函数按照输入的ACSII字符集字符分类使用这些函数之前应当用"#include
返回y/x的反正切其范围在-~+之间floatceil(floatx)返回对应x的一个整型数小数部分四舍五入floatcos(floatx)返回以弧度形式表示的x的余弦值floatcosh(floatx)返回x的双曲余弦函数值floatexp(floatx)返回以e为底的x的幂即exfloatexp10(floatx)返回以10为底的幂即10xfloatfabs(floatx)返回x的绝对值floatfloor(floatx)返回不大于x的最大整数floatfmod(floatx,floaty)返回x/y的余数floatfrexp(floatx,int*pexp)把浮点数x分解成数字部分y尾数和以2为底的指数n两个部分即x=y2ny的范围为0.5y1y值被函数返回而n值存放到pexp指向的变量中floatfround(floatx)返回最接近x的整型数floatldexp(floatx,intexp)返回x2expfloatlog(floatx)返回x的自然对数floatlog10(floatx)返回以10为底的x的对数floatmodf(floatx,float*pint)把浮点数分解成整数部分和小数部分整数部分存放到pint指向的变量小数部分应当大于或等于0而小于1并且作为函数返回值返回floatpow(floatx,floaty)返回xy值floatsqrt(floatx)返回x的平方根floatsin(floatx)返回以弧度形式表示的x的正弦值floatsinh(floatx)返回x的双曲正弦函数值floattan(floatx)返回以弧度形式表示的x的正切值floattanh(floatx)返回x的双曲正切函数值5标准输入输出库标准的文件输入输出是不能真正植入微控制器MCU的标准stdio.h的许多内容不可以使用不过有一些IO函数是被支持的同样使用之前应用"#include
相应的单选钮注意作为缺省单字符输出函数putchar是输出到UART装置没有修改无论如何为使输出能如期望的那样出现在程序终端窗口中'n'字符必须被映射为成对的回车和换行CR/LFintgetchar()使用查寻方式从UART返回一个字符intprintf(char*fmt,..)按照格式说明符输出格式化文本frm字符串格式说明符是标准格式的一个子集%d--输出有符号十进制整数%o--输出无符号八进制整数%x-输出无符号十六进制整数%X–除了大写字母使用'A'-'F'外同%x%u-输出无符号十进制整数%s–输出一个以C中空字符NULL结束的字符串%c–以ASCII字符形式输出只输出一个字符%f–以小数形式输出浮点数%S–输出在FLASH存贮器中的字符串常量printf支持三个版本取决于你的特别需要和代码的大小越高的要求代码越大基本形:只有%c,%d,%x,%u,和%s格式说明符是承认的长整形:针对长整形数的修改%ld,%lu,%lx被支持,以适用于精度要求较高的领域浮点形:全部格式包括%f被支持你使用编译选项对话框来选择版本代码大小的增加是值得关注的intputchar(intc)输出单个字符这个库程序使用了UART以查寻方式输出单个字符注意输出’n’字符至程序终端窗口intputs(char*s)输出以NL结尾的字符串intsprintf(char*buf,char*fmt)按照格式说明符输出格式化文本frm字符串到一个缓冲区格式说明符同printf()"constchar*"支持功能cprintf和csprintf是将FLASH中的格式字符串分别以prinf和sprinf形式输出6标准库和内存分配函数标准库头文件
释放ptr所指向的内存区void*malloc(size_tsize)分配size字节的存贮区如果分配成功则返回内存区地址如内存不够分配则返回0void_NewHeap(void*start,void*end)初始化内存分配程序的堆一个典型的调用是将符号_bss_end+1的地址用作"start"值符号_bss_end定义为编译器用来存放全局变量和字符串的数据内存的结束加1的目的是堆栈检查函数使用_bss_end字节存贮为标志字节这个结束值不能被放入堆栈中externchar_bss_end;_NewHeap(&_bss_end+1,&_bss_end+201);//初始化200字节大小的堆intrand(void)返回一个在0和RAND_MAX之间的随机数void*realloc(void*ptr,size_tsize)重新分配ptr所指向内存区的大小为size字节size可比原来大或小返回指向该内存区的地址指针voidsrand(unsignedseed)初始化随后调用的随机数发生器的种子数longstrtol(char*s,char**endptr,intbase)按照"base."的格式转换"s"中起始字符为长整型数如果"endptr"不为空*endptr将设定"s"中转换结束的位置unsignedlongstrtoul(char*s,char**endptr,intbase)除了返回类型为无符号长整型数外其余同"strtol"7字符串函数用"#include size_tstrlen(char*s)返回字符串s的长度不包括结束NULL字符char*strncat(char*s1,char*s2,size_tn)拷贝字符串s2不含结束NULL字符中n个字符到s1如果s2长度比n小则只拷贝s2返回s1intstrncmp(char*s1,char*s2,size_tn)基本和strcmp函数相同但其只比较前n个字符char*strncpy(char*s1,char*s2,size_tn)基本和strcpy函数相同但其只拷贝前n个字符char*strpbrk(char*s1,char*s2)基本和strcspn函数相同但它返回的是在s1匹配字符的地址指针否则返回NULL指针char*strrchr(char*s,intc)在字符串s中搜索最后出现的c并返回它的指针否则返回_tstrspn(char*s1,char*s2)在字符串s1搜索与字符串s2不匹配的第一个字符包括结束NULL字符其返回s1中找到的第一个不匹配字符的索引char*strstr(char*s1,char*s2)在字符串s1中找到与s2匹配的子字符串如果成功它返回s1中匹配子字符串的地址指针否则返回NULL"constchar*"支持函数这些函数除了它的操作对象是在FLASH中常数字符串外其余同c中的函数size_tcstrlen(constchar*s)char*cstrcpy(char*dst,constchar*src);intcstrcmp(constchar*s1,char*s2);8变量参数函数 硬件堆栈区警戒线软件堆栈区警戒线数据区低端地址警戒线启动代码写了一个正确的关于数据区的地址字节和一个类似的正确的关于软件堆栈的地址字节作为警戒线[注意如果你使用了你自己的启动文件而其又是以6.20版本之前的启动文件为基础的你将需要额外改造为新的启动文件]注意如果你使用动态分配内存你必须跳过警戒线字节_bss_end来分配你的堆参考内存分配函数堆栈检查你调用_StackCheck(void)函数来检查堆栈溢出如果警戒线字节仍然保持正确的值那么函数检查通过如果堆栈溢出那么警戒线字节将可能被破坏注意当你的程序堆栈溢出的时候你的程序将可能运行不正常或偶然崩溃当_StackCheck检查错误条件时它调用了带一个参数的函数_StackOverflowed(charc)如果参数是1那么硬件堆栈有过溢出如果参数是0那么软件堆栈曾经溢出在那个例子中制造了两个功能调用它是两个堆栈都可能溢出的无论如何在_StackOverflowed执行起作用时第二个调用不可以出现作为例子如果函数复位了CPU那么将不能返回_StackCheck函数缺省的_StackOverflowed函数当它被调用时库会用一个缺省的_StackOverflowed函数来跳转到0的位置因此复位CPU和程序你可能希望用一个函数来代替它以指示更多的错__
版权声明:本文标题:单片机C语言常用头文件 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1703303739h446155.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论