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