当前位置: 首页 > news >正文

做网站基础教程17网站一起做网店普

做网站基础教程,17网站一起做网店普,网站建设与管理专业人才调研,做弹弓教程网站文章目录 1 标准库1.1 诊断assert.h1.2 字符类别测试ctype.h1.3 错误处理errno.h1.4 整型常量limits.h1.5 地域环境locale.h1.6 数学函数math.h1.7 非局部跳转setjmp.h1.8 可变参数表stdarg.h1.9 公共定义stddef.h1.10 输入输出stdio.h1.11 实用函数stdlib.h1.12 日期与时间函数… 文章目录 1 标准库1.1 诊断assert.h1.2 字符类别测试ctype.h1.3 错误处理errno.h1.4 整型常量limits.h1.5 地域环境locale.h1.6 数学函数math.h1.7 非局部跳转setjmp.h1.8 可变参数表stdarg.h1.9 公共定义stddef.h1.10 输入输出stdio.h1.11 实用函数stdlib.h1.12 日期与时间函数time.h1.13 信号signal.h 1 标准库 1.1 诊断assert.h assert.h中只定义了一个带参的宏assert其定义形式如下 void assert (int 表达式)assert宏用于为程序增加诊断功能它可以测试一个条件并可能使程序终止。 在执行语句assert(表达式);时如果表达式为0则在终端显示一条信息 Assertion failed: 0, file 源文件名, line 行号 Abnormal program termination 然后调用abort终止程序的执行。 在assert.h中带参宏assert是被定义为条件编译的如果在源文件中定义了宏NDEBUG则即使包含了头文件assert宏也将被忽略。 1.2 字符类别测试ctype.h 在头文件中定义了一些测试字符的函数。在这些函数中每个函数的参数都是整型int而每个参数的值或者为EOF或者为char类型的字符。中定义的标准函数列表如下 ctype.h 中定义的函数 函数定义函数功能简介int isalnum(int c)检查字符是否是字母或数字int isalpha(int c)检查字符是否是字母int isascii(int c)检查字符是否是ASCII码int iscntrl(int c)检查字符是否是控制字符int isdigit(int c)检查字符是否是数字字符int isgraph(int c)检查字符是否是可打印字符int islower(int c)检查字符是否是小写字母int isprint(int c)检查字符是否是可打印字符int ispunct(int c)检查字符是否是标点字符int isspace(int c)检查字符是否是空格符int isupper(int c)检查字符是否是大写字母int isxdigit(int c)检查字符是否是十六进制数字字符int toupper(int c)将小写字母转换为大写字母int tolower(int c)将大写字母转换为小写字母 1.3 错误处理errno.h errno.h中定义了两个常量一个变量。 EDOM它表示数学领域错误的错误代码。 ERANGE它表示结果超出范围的错误代码。 errno这是一个变量该值被设置成用来指出系统调用的错误类型。 1.4 整型常量limits.h 在limits.h头文件中定义了一些表示整型大小的常量。下面给出这些常量的字符表示以及含义见下表。 limits.h中定义的字符常量 字符常量取值含义CHAR_BIT8char类型的位数CHAR_MAX255或127char类型最大值CHAR_MIN0或-127char类型最小值INT_MIN-32767int类型最小值INT_MAX32767int类型最大值LONG_MAX2147483647long类型最大值LONG_MIN-2147483647long类型最小值SCHAR_MAX127signed char 类型最大值SCHAR_MIN-127signed char 类型最小值SHRT_MAX32767short类型的最大值SHRT_MIN-32767short类型的最小值UCHAR_MAX255unsigned char 类型最大值UINT_MAX65535unsigned int 类型最大值ULONG_MAX4294967295unsigned long 类型最大值USHRT_MAX65535unsigned short类型的最大值 1.5 地域环境locale.h 在locale.h中定义了7个常量一个结构2个函数。 常量的定义 LC_ALL传递给setlocale的第一个参数指定要更改该locale的哪个方面。LC_COLLATEstrcoll和strxfrm的行为。LC_CTYPE字符处理函数。LC_MONETARYlocaleconv返回的货币信息。LC_NUMERIClocaleconv返回的小数点和货币信息。LC_TIMEstrftime的行为。 以上扩展成具有唯一取值的整型常数表达式可作为setlocale的第一个参数。NULL由实现环境定义的空指针。 struct lconv结构 该结构用于存储和表示当前locale的设置。其结构定义如下 struct lconv {char*decimal_point ;char*thousands_sep ;char*grouping ;char*int_curr_symbol ;char*currency_symbol ;char*mon_decimal_point ;char*mon_thousands_sep ;char*mon_grouping ;char*positive_sign ;char*negative_sign ;char int_frac_digits ;char frac_digits ;char p_cs_precedes ;char p_sep_by_space ;char n_cs_precedes ;char n_sep_by_space ;char p_sign_posn ;char n_sign_posn ; };函数 struct Iconv *localeconv(void); 函数localeconv将一个struct Iconv类型的对象的数据成员设置成为按照当前地域环境的有关规则进行数量格式化后的相应值。char *setlocale(int category,char * locale); 函数setlocale用于更改和查询程序的整个当前地域环境或部分设置。地域环境变量由参数category(上面定义的6个常量)和locale指定。 1.6 数学函数math.h 在math.h中定义了一些数学函数和宏用来实现不同种类的数学运算。下面给出中标准数学函数的函数定义及功能简介见下表。 函数定义函数功能简介double exp(double x);指数运算函数, 求e的x次幂函数double log(double x)对数函数ln(x)double log10(double x);对数函数logdouble pow(double x, double y);指数函数(x的y次方)double sqrt(double x);计算平方根函数double ceil(double x);向上舍入函数double floor(double x);向下舍入函数double fabs(double x);求浮点数的绝对值double ldexp(double x, int n);装载浮点数函数double frexp(double x, int* exp);分解浮点数函数double modf(double x, double* ip);分解双精度数函数double fmod(double x, double y);求模函数double sin(double x);计算x的正弦值函数double cos(double x);计算x的余弦值函数double tan(double x);计算x的正切值函数double asin(double x);计算x的反正弦函数double acos(double x);计算x的反余弦函数double atan(double x);反正切函数1double atan2(double y, double x);反正切函数2double sinh(double x);计算x的双曲正弦值double cosh(double x);计算x的双曲余弦值double tanh(double x);计算x的双曲正切值 1.7 非局部跳转setjmp.h 在setjmp.h头文件中定义了一种特别的函数调用和函数返回顺序的方式。这种方式不同于以往的函数调用和返回顺序它允许程序流程立即从一个深层嵌套的函数中返回。 定义了两个宏int setjmp(jmp_buf env); 设置调转点 和 longjmp(jmp_buf jmpb, int retval); 跳转 宏setjmp的功能是将当前程序的状态保存在结构env为调用宏longjmp设置一个跳转点。setjmp将当前信息保存在env中供longjmp使用。其中env是jmp_buf结构类型的该结构定义为 typedef struct {unsigned j_sp;unsigned j_ss;unsigned j_flag;unsigned j_cs;unsigned j_ip;unsigned j_bp;unsigned j_di;unsigned j_es;unsigned j_si;unsigned j_ds; } jmp_buf[1];直接调用setjmp时返回值为0这一般用于初始化设置跳转点时。以后再调用longjmp宏时用env变量进行跳转。程序会自动跳转到setjmp宏的返回语句处此时setjmp的返回值为非0由longjmp的第二个参数指定。 下面通过例子来理解中定义的这两个宏。 例程9-1 非局部跳转演示。 include setjmp.h jmp_buf env; /*定义jmp_buf类型变量*/ int main(void) { int value; value setjmp(env); /*调用setjmp为longjmp设置跳转点*/if (value ! 0) {printf(Longjmp with value %d\n, value);exit(value); /*退出程序*/} printf(Jump ... \n);longjmp(env,1); /*跳转到setjmp语句处*/return 0; }本例先应用setjmp宏为longjmp设置跳转点当第一次调用setjmp时返回值为0并将程序的当前状态寄存器的相关状态保存在结构变量env中。当程序执行到longjmp时系统会根据setjmp保存下来的状态env跳转到setjmp语句处并根据longjmp的第二个参数设置此时setjmp的返回值。 本例的运行结果为 Jump … Longjmp with value 1 一般地宏setjmp和longjmp是成对使用的这样程序流程可以从一个深层嵌套的函数中返回。 1.8 可变参数表stdarg.h 可变参数表中的宏是用来定义参数可变的函数的。在C语言中有些库函数或者用户自定义的函数的参数是可变的常用省略号“……”例如库函数中的printf定义这样的函数就要使用到中的宏。 va_list用于保存宏va_startva_arg以及va_end所需信息的数据类型。 stdarg.h中还定义了三个宏 void va_start(va_list ap, parmN);type va_arg(va_list ap,type);void va_end (va_list ap); va_start的作用是初始化ap因此va_start要在所有其它的va开头的宏前面最先使用(除了用va_list定义变量外)后面的va_copy, va_arg, va_end都要使用到ap。在一对va_start和va_end之间不能再次使用va_start宏。其中parmN为…之前的最后一个参数。 例如,printf函数定义为printf(const char format, …); 那么在printf函数中的va_start使用之后, parmN 的值就等于format。 va_arg的作用就是返回参数列表ap中的下一个具有type类型的参数,每次调用va_arg都会修改ap的值,这样才能连续不断地获取下一个type类型的参数。 va_end与va_start构成了一个scopeva_end标志着结束va_end之后ap就无效了。 1.9 公共定义stddef.h 在stddef.h头文件中指定了标准库中的公共定义。其中主要包括以下内容 NULL空指针类型常量。offset(type,member-designator)它是扩展iz-t类型的一个整型常数表达式。它的值为从type定义的结构类型的开头到结构成员member-designator的偏移字节数。ptrdiff_t表示两指针之差的带符号整数类型。size_t表示由sizeof运算符计算出的结果类型它是一个无符号整数类型。wchar_t它是一种整数类型取值范围为在被支持的地域环境中最大扩展字符集的所有字符的各种代码空字符代码值为0。 1.10 输入输出stdio.h 在stdio.h头文件中定义了输入输出函数类型和宏。这些函数、类型和宏几乎占到标准库的三分之一。 下面给出头文件中声明的函数以及功能简介见下表。 函数定义函数功能简介FILE *fopen(char *filename, char *type)打开一个文件FILE *fropen(char *filename, char *type,FILE *fp)打开一个文件并将该文件关联到fp指定的流int fflush(FILE *stream)清除一个流int fclose(FILE *stream)关闭一个文件int remove(char *filename)删除一个文件int rename(char *oldname, char *newname)重命名文件FILE *tmpfile(void)以二进制方式打开暂存文件char *tmpnam(char *sptr)创建一个唯一的文件名int setvbuf(FILE *stream, char *buf, int type, unsigned size)把缓冲区与流相关int printf(char *format…)产生格式化输出的函数int fprintf(FILE *stream, char *format[, argument,…])传送格式化输出到一个流中int scanf(char *format[,argument,…])执行格式化输入int fscanf(FILE *stream, char *format[,argument…])从一个流中执行格式化输入int fgetc(FILE *stream)从流中读取字符char *fgets(char *string, int n, FILE *stream)从流中读取一字符串int fputc(int ch, FILE *stream)送一个字符到一个流中int fputs(char *string, FILE *stream)送一个字符到一个流中int getc(FILE *stream)从流中取字符int getchar(void)从stdin流中读字符char *gets(char *string)从流中取一字符串int putchar(int ch)在stdout上输出字符int puts(char *string)送一字符串到流中int ungetc(char c, FILE *stream)把一个字符退回到输入流中int fread(void *ptr, int size, int nitems, FILE *stream)从一个流中读数据int fwrite(void *ptr, int size, int nitems, FILE *stream)写内容到流中int fseek(FILE *stream, long offset, int fromwhere)重定位流上的文件指针long ftell(FILE *stream)返回当前文件指针int rewind(FILE *stream)将文件指针重新指向一个流的开头int fgetpos(FILE *stream)取得当前文件的句柄int fsetpos(FILE *stream, const fpos_t *pos)定位流上的文件指针void clearerr(FILE *stream)复位错误标志int feof(FILE *stream)检测流上的文件结束符int ferror(FILE *stream)检测流上的错误void perror(char *string)系统错误信息 点击了解 C语言之IO流函数 1.11 实用函数stdlib.h 在stdlib.h头文件中声明了一些实现数值转换内存分配等类似功能的函数。下面给出头文件中声明的函数以及功能简介见下表。 函数定义函数功能简介double atof(const char *s)将字符串s转换为double类型int atoi(const char *s)将字符串s转换为int类型long atol(const char *s)将字符串s转换为long类型double strtod (const char*s,char **endp)将字符串s前缀转换为double型long strtol(const char*s,char **endp,int base)将字符串s前缀转换为long型unsinged long strtol(const char*s,char **endp,int base)将字符串s前缀转换为unsinged long型int rand(void)产生一个0~RAND_MAX之间的伪随机数void srand(unsigned int seed)初始化随机数发生器void *calloc(size_t nelem, size_t elsize)分配主存储器void *malloc(unsigned size)内存分配函数void *realloc(void *ptr, unsigned newsize)重新分配主存void free(void *ptr)释放已分配的块void abort(void)异常终止一个进程void exit(int status)终止应用程序int atexit(atexit_t func)注册终止函数char *getenv(char *envvar)从环境中取字符串void *bsearch(const void *key, const void *base, size_t *nelem, size_t width, int(*fcmp)(const void *, const *))二分法搜索函数void qsort(void *base, int nelem, int width, int (*fcmp)())使用快速排序例程进行排序int abs(int i)求整数的绝对值long labs(long n)取长整型绝对值div_t div(int number, int denom)将两个整数相除, 返回商和余数ldiv_t ldiv(long lnumer, long ldenom)两个长整型数相除, 返回商和余数 1.12 日期与时间函数time.h 在time.h头文件中声明了一些处理日期和时间的类型与函数。clock_t和time_t是两个表示时间值的算术类型。结构struct tm存储了一个日历时间的各个成分。结构tm的成员的意义及其正常的取值范围如下 struct tm {int tm_sec; /*从当前分钟开始经过的秒数(0,61)*/int tm_min; /*从当前小时开始经过的分钟数(0,59)*/int tm_hour; /*从午夜开始经过的小时数(0,23)*/int tm_mday; /*当月的天数(1,31)*/int tm_mon; /*从1月起经过的月数(0,11)*/int tm_year; /*从1900年起经过的年数*/int tm_wday; /*从本周星期天开始经过的天数(0,6)*/int tm_yday; /*从今年1月1日起经过的天数(0,356)*/int tm_isdst; /*夏令时标记*/ };如果夏令时有效夏令时标记tm_isdst值为正若夏令时无效tm_isdst值为0如果得不到夏令时信息tm_isdst值为负。 下面给出头文件中声明的时间函数见下表。 函数定义函数功能简介clock_t clock(void)确定处理器时间函数time_t time(time_t *tp)返回当前日历时间double difftime(time_t time2, time_t time1)计算两个时刻之间的时间差time_t mktime(struct tm *tp)将分段时间值转换为日历时间值char *asctime(const struct tm *tblock)转换日期和时间为ASCII码char *ctime(const time_t *time)把日期和时间转换为字符串struct tm *gmtime(const time_t *timer)把日期和时间转换为格林尼治标准时间(GMT)struct tm *localtime(const time_t *timer)把日期和时间转变为结构size_t strftime(char *s,size_t smax,const char *fmt, const struct tm *tp)根据fmt的格式要求将*tp中的日期与时间转换为指定格式。 1.13 信号signal.h 头signal.h文件中提供了一些处理程序运行期间引发的各种异常条件的功能例如一些来自外部的中断信号等。 在中只定义了两个函数int signal(int sig, sigfun fname);和int raise(int sig); signal函数的作用是设置某一信号的对应动作。其中参数sig用来指定哪一个信号被设置处理函数。 在标准C 中支持的信号如下表。 标准C支持的信号 取值说明默认执行动作使用的操作系统SIGABRT异常中止中止程序UNIX DOSSIGPPE算术运算错误中止程序UNIX DOSSIGILL非法硬件指令中止程序UNIX DOSSIGINT终端中断中止程序UNIX DOSSIGSEGV无效的内存访问中止程序UNIX DOSSIGTERM中止信号中止程序UNIX DOS 参数fname是一个指向函数的指针当sig的信号发生时程序会自动中断转而执行fname指向的函数。执行完毕再返回断点继续执行程序。系统提供了两个常量函数指针可以作为函数的参数传递。它们分别是 SIG_DEF执行默认的系统第一的函数。SIG_IGN忽略此信号。 raise函数的作用是向正在执行的程序发送一个信号从而使得当前进程产生一个中断而转向信号处理函数signal执行。其中参数sig为信号名称它的取值范围同函数signal中的参数sig取值范围相同 ,下面通过例子理解函数signal和raise。 #include stdio.h #include signal.h void Print1(); void Print2(); int main() { signal(SIGINT,Print1);printf(Please enter Ctrc for interupt\n) ;getchar();signal(SIGSEGV,Print2);printf(Please enter any key for a interupt\n);getchar();raise(SIGSEGV);} void Print1() {printf(This is a SIGINT interupt!\n); } void Print2() {printf(This is a SIGSEGV interupt!\n); }本例首先通过用户终端输入Ctrlc产生一个终端中断然后应用signal函数调用中断处理函数Print1再通过raise函数生成一个无效内存访问中断并通过signal函数调用中断处理函数Print2。 运行结果为 Please enter Ctrc for interupt ^C This is a SIGINT interupt! Please enter any key for a interupt a This is a SIGSEGV interupt!
http://www.sczhlp.com/news/197067/

相关文章:

  • 广州网站建设公司推荐wordpress 新建php文件
  • 技术支持 网站建设极速建站网站模板
  • 南山做网站教程苏州优化外包
  • 网站建设的有什么需求专业的微网站哪家好
  • 简述网站主要流程网站不会更新文章
  • 专题网站建设方案北京京水建设集团有限公司网站
  • 在百度怎样建网站济宁百度推广开户
  • mvc3网站上传到空间福建省建设行业企业资质查询网站
  • 龙游住房和城乡建设局网站北京展览馆网站建设
  • 广州营销型网站建设费用wordpress小清新主题
  • 网站登录页面html模板百度人气榜排名
  • 做旅游产品的网站有哪些网站源码做exe执行程序
  • 保定网站建设方案外包手机app在哪里
  • 2025 年工程管理软件平台公司最新推荐榜:聚焦数字化效能,优选靠谱服务商
  • 被 Excel 格式折腾的那些瞬间---excl格式转换
  • 阵列信号处理中的盲源分离算法
  • 标准版v9.0破解版及软件安装包
  • 内外网传文件有哪些痛点?一文读懂高效传输方案是什么样的
  • 十堰网站建设联系电话网站后台使用培训
  • 一元云购 网站开发苏州优化外包
  • 制作一个网站的成本公司网站设计哪家公司好
  • 河间市网站建设价格烟台专业网站建设
  • 新注册域名做网站好处wordpress 最新文章列表
  • 合肥市建设工程市场信息价网站天津建设工程信息网 官网首页
  • 为什么自己做的网站打开是乱码学生html个人网页代码
  • 小团队兼职做网站正规网站制作公司哪里有
  • 海宁市住房与城乡规划建设局网站Thinkphp开发wordpress
  • 网站开发专员的面试题网址大全2345电脑版
  • 网站的整合网站建设指导方案
  • 做复印机的模板网站中国电信商圈经验分享