------------------------针对epanet代码分析,采用一些C常用的函数,进行整理下,部分摘录自网上网友整理。
1、malloc
原型:extern void *malloc(unsigned int num_bytes);
头文件:在TC2.0中可以用malloc.h或 alloc.h (注意:alloc.h 与 malloc.h 的内容是完全一致的),在Visual C++6.0中可以用malloc.h或者stdlib.h,在DEV-C++中采用的是stdlib.h
功能:分配长度为num_bytes字节的内存块。
返回值:返回类型是 void* 类型。void* 表示未确定类型的指针。C,C++规定,void* 类型可以强制转换为任何其它类型的指针。如果分配成功则返回指向被分配内存的指针,否则返回空指针NULL。当内存不再使用时,应使用free()函数将内存块释放。
说明:关于该函数的原型,在旧的版本中malloc返回的是char型指针,新的ANSIC标准规定,该函数返回为void型指针,因此必要时要进行类型转换。
名称解释:malloc的全称是memory allocation,中文叫动态内存分配,当无法知道内存具体位置的时候,想要绑定真正的内存空间,就需要用到动态的分配内存。
2.calloc
原型: void *calloc(unsigned n,unsigned size)
头文件:stdlib.h或malloc.h
功 能: 在内存的动态存储区中分配n个长度为size的连续空间,函数返回一个指向分配起始地址的指针;如果分配不成功,返回NULL。
跟malloc的区别:
calloc在动态分配完内存后,自动初始化该内存空间为零,而malloc不初始化,里边数据是随机的垃圾数据。
3.rewind
用 法: void rewind(FILE *stream);
返回值:无
头文件: stdio.h
功 能: 将文件内部的位置指针重新指向一个流(数据流/文件)的开头
注意:不是文件指针而是文件内部的位置指针,随着对文件的读写文件的位置指针(指向当前读写字节)向后移动。而文件指针是指向整个文件,如果不重新赋值文件指针不会改变。
英文释义:[ri:ˈwaɪnd] v.倒回(影片、录音带等);重绕 n.重绕;倒带器
4.strchr
原型:extern char *strchr(const char *s,char c);
5.strcspn
原型:size_t strcspn(const char *s1,const char *s2);
相关头文件:#include <string.h>
功能:找到s1与s2中第一个相同的字符,返回这个字符在S1中第一次出现的位置。
说明:返回第一个出现的字符在s1中的下标值,亦即在s1中出现而s2中没有出现的子串的长度。简单地说,若strcspn()返回的数值为n,则代表字符串s1开头连续有n个字符都不含字符串s2内的字符。