函数strerror和 errno及va_start以及续行符‘/’的使用???

 1.error 在/usr/include/errno.h中,include了<sys/errno.h>,在该文件中定义了不同的errno的值(错误类型编号)所对应的宏以及错误类型.
许多标准的C库函数都通过全局变量errno向程序传递一个错误号,以表明发生哪种错误.
2.strerror函数:
  #include <string.h>  char *strerror( int errnum );
  strerror()函数用来依靠参数errnum的错误代码来查询其错误原因的描述,然后将字符串指针返回。
  其中errnum一般为全局变量 error;即要包含#include<errno.h>头文件。
     当程序出现错误时,系统会自动给error赋值。
但你不能根据errno的值判断程序是否出错。因为当error被赋值后,它可能不会自动清值。只有当你的程序出错时,你可以用它输出错误原因。
3.va_list 的使用 两个例子
 3.1 子函数中以宏定义形式使用----
 #include<stdio.h>
 #include<stdarg.h>

 #define VARLIST_STRINGDUMP(BUF,VARS,FROM,SFMT) /
 /
   va_start(VARS,FROM);/
   vsprintf(BUF,SFMT,VARS);/
   va_end(VARS);
 
 int print(char *buffer,const char * form,...)
 {
  va_list params;
 
  VARLIST_STRINGDUMP(buffer,params,form,form);
  printf("it is right!/n");
  return 0;
 }

 int main()
 {
 
  char buffer[50];
  int first=100;
  int last=200;
  char buf[]="zhongguo";
  char format[]="%d--%s--%d";
  print(buffer,format,first,buf,last);
  return 0;
  }
 3.2 子函数中直接使用
 #include<stdio.h>
 #include<stdarg.h>

  int print(const char * form,...)
 {
  va_list p;
  int value;
  va_start(p,form);
  value=vprintf(form,p);
  va_end(p);
  return value;
 }

 int main()
 {
  int print(const char * form,...);
  int firt=100;
  int last=234;
  char buf[]="name is fidel";
  print("%d--%s--%d",firt,buf,last);
  return 0;
 }

 4.续行符的使用:
  宏定义中语句太长,写到一行里太长,不便于查看,可以使用续行符‘/’在代码可以用空格间隔的地方续行。
例子:
#define a /
int a;/
int b;

上面的内容相当于 #define a int a;int b;
【注意】续行符后面必须紧跟换行符
**************************************************

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值