我实现了自己的跨平台打印彩色文本的方法。但是,我使用了宏。这是一种糟糕的做法还是应该避免的事情?如果是,你会推荐什么替代方法?
代码:
#ifndef CLIOUTPUT_H_
#include <stdio.h>
#if defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__NT__)
#include <Windows.h>
#define _RED 0x0C
#define _GREEN 0x0A
#define _DEFAULT 0x0F
HANDLE __c = GetStdHandle(STD_OUTPUT_HANDLE);
#define _COLOREDTEXT(_msg, _color) do {
SetConsoleTextAttribute(__c, _color);
printf("%s", _msg);
SetConsoleTextAttribute(__c, _DEFAULT);
} while(false)
#elif __APPLE__ || __linux__
#define _RED 31
#define _GREEN 32
#define _DEFAULT 33[0m
#define _COLOREDTEXT(_msg, _color) do {
printf("