日期:2014-05-16 浏览次数:20798 次
  1 /******fun.c********/
  2 
  3 #include <stdio.h>
  4 #include <stdarg.h>
  5 #include <stdlib.h>
  6 #include "a.h" 
  7 int add(int a, int b){
  8     if(a > 100 && b > 100)
  9       ERROR(-1, "错误:a=%d,b=%d都超过了100\n", a, b);
 10     if(a > 100) 
 11       ERROR(-1, "错误:a=%d超过了100\n", a);
 12     if(b > 100) 
 13       ERROR(-1, "错误:b=%d超过了100\n", b);
 14     return a + b;   
 15 }
 16 int logging(int code, char *fmt,...){
 17     va_list list;
 18     FILE *fp;
 19     fp = fopen("./error.log","a+");
 20     if( fp == NULL){
 21         printf("error\n");
 22         exit(0);
 23     }
 24     va_start(list, fmt);
 25     vfprintf(fp,fmt,list);
 26     fclose(fp);
 27     va_end(list);
 28 return code;
 29 }
  1 /*****main.c********/
  2 #include <stdio.h>
  3 int main(){
  4     int a, b, res;
  5     printf("要求输入到两个数小于100,否则返回-1\n");
  6     while( scanf("%d %d", &a, &b) != EOF){
  7         res = add(a, b);
  8         printf("%d\n", res);
  9     }
 10 return 0;
 11 }
1 main : main.o fun.o 2 cc -o main main.o fun.o 3 main.o : main.c 4 cc -c main.c 5 fun.o : fun.c 6 cc -c fun.c 7 clean: 8 rm main.o fun.o
1 #ifndef _A_DEF 2 #define _A_DEF 3 4 #include <stdio.h> 5 #define ERROR return logging 6 int logging (int code, char *fmt,...);//变参 7 8 #endif