【发布时间】:2020-11-22 12:51:44
【问题描述】:
我正在尝试将此函数转换为宏以减少代码行。
void gotoxy(int x,int y) //cursor placing
{
COORD coord;
coord.X =x;
coord.Y=y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),coord);
}
将此函数编写为宏的正确方法是什么? 我已经尝试过了
#define gotoxy(x,y) COORD coord;coord.X = x;coord.Y = y ; SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),coord)
它显示[错误]重新声明'coord'没有链接。
【问题讨论】:
-
宏是魔鬼的发明。您应该将宏 转换为 函数,而不是相反。
-
至于“减少代码行”的目标,不要。你要做的是让代码更难阅读、理解和维护。源代码大小与优化后的可执行程序的大小关系不大。