CS计算机代考程序代写 #ifndef DEBUG_H

#ifndef DEBUG_H
#define DEBUG_H

#include

#define NL “\n”

#ifdef COLOR
#define KNRM “\033[0m”
#define KRED “\033[1;31m”
#define KGRN “\033[1;32m”
#define KYEL “\033[1;33m”
#define KBLU “\033[1;34m”
#define KMAG “\033[1;35m”
#define KCYN “\033[1;36m”
#define KWHT “\033[1;37m”
#define KBWN “\033[0;33m”
#else
#define KNRM “”
#define KRED “”
#define KGRN “”
#define KYEL “”
#define KBLU “”
#define KMAG “”
#define KCYN “”
#define KWHT “”
#define KBWN “”
#endif

#ifdef VERBOSE
#define DEBUG
#define INFO
#define WARN
#define ERROR
#define SUCCESS
#endif

#ifdef DEBUG
#define debug(S, …) \
do { \
fprintf(stderr, KMAG “DEBUG: %s:%s:%d ” KNRM S NL, __FILE__, \
__extension__ __FUNCTION__, __LINE__, ##__VA_ARGS__); \
} while (0)
#else
#define debug(S, …)
#endif

#ifdef INFO
#define info(S, …) \
do { \
fprintf(stderr, KBLU “INFO: %s:%s:%d ” KNRM S NL, __FILE__, \
__extension__ __FUNCTION__, __LINE__, ##__VA_ARGS__); \
} while (0)
#else
#define info(S, …)
#endif

#ifdef WARN
#define warn(S, …) \
do { \
fprintf(stderr, KYEL “WARN: %s:%s:%d ” KNRM S NL, __FILE__, \
__extension__ __FUNCTION__, __LINE__, ##__VA_ARGS__); \
} while (0)
#else
#define warn(S, …)
#endif

#ifdef SUCCESS
#define success(S, …) \
do { \
fprintf(stderr, KGRN “SUCCESS: %s:%s:%d ” KNRM S NL, __FILE__, \
__extension__ __FUNCTION__, __LINE__, ##__VA_ARGS__); \
} while (0)
#else
#define success(S, …)
#endif

#ifdef ERROR
#define error(S, …) \
do { \
fprintf(stderr, KRED “ERROR: %s:%s:%d ” KNRM S NL, __FILE__, \
__extension__ __FUNCTION__, __LINE__, ##__VA_ARGS__); \
} while (0)
#else
#define error(S, …)
#endif

#endif /* DEBUG_H */