C语言例子

a.c

#include<stdio.h>
#include"a.h"
#include<stdarg.h>
#include<stdlib.h>
int add(int a,int b){
if(a<100)
ERROR(-1,"你输入的a=%d小于100",a);
if(b<100)
ERROR(-1,"你输入的b=%d小于100",b);
return a+b;
}
int logging(int code,char fmt[],...){
va_list l;
FILE *fp;
if((fp=fopen("err.log","w"))==NULL){
printf("error\n");
exit(0);
}
va_start(l,fmt);
vfprintf(fp,fmt,l);
fclose(fp);
va_end(l);
return code;
}

a.h

#ifndef _A_DEF
#define _A_DEF

#include<stdio.h>
#define ERROR return logging
int logging(int code,char fmt[],...);
#endif

act.c

#include<stdio.h>
#include"a.h"
main(){
printf("start%d\n",add(1,2));
}

new.c

#include <stdio.h>
#include "a.h"

main() {
printf("start %d\n",add(10,2000));
}

#include <stdlib.h>
int add(int a,int b){
if( a<100 )
ERROR( -1,"错误 a:%d 小于 100",a);
if( b<100 )
ERROR( -1,"错误 b:%d 小于 100",b);
return a+b;
}

int logging( int code,char fmt[],...){
va_list l;
FILE *fp;
if( (fp=fopen("err.log","w"))==NULL ) {
printf("error\n");
exit(0);
}
va_start(l,fmt);
vfprintf(fp,fmt,l);
fclose(fp);
va_end(l);
return code;

}


a.h

#ifndef _A_DEF
#define _A_DEF

#include <stdio.h>
#define ERROR return logging
int logging( int code,char fmt[],...);

Makefile

act.o : act.c
cc -c act.c
a.o:a.c
cc -c a.c
act : act.o a.o
cc -o act act.o a.o







posted @ 2011-12-15 21:45  wuxi812  阅读(257)  评论(0编辑  收藏  举报