为 win32 && linux 定义清除函数
define clear function for win32 && linux
我的问题应该不难回答:
我正在尝试编写一个 C 程序来训练一些 C 技能。
但是我不知道这个程序将来会在哪个系统上 运行。
我想确保我已经涵盖了 Unix 和 DOS 系统。
我正在尝试这样做:
#ifdef _WIN32
#define clear()
system("cls");
#endif // _WIN32
#ifdef linux
#define clear()
system("clear");
#endif // linux
这似乎是错误的,因为它告诉我
expected declaration specifiers or '...' before string constant"
虽然我不确定我是否完全按照这个定义做对了(例如,我可以在此处包含 2 个单独的 headers >> 使用更多内存)
这里一定有新手语法错误。
宏展开应该和宏名在同一行。如果你真的想要它们超过两行,请使用 \
到 "escape" 换行符。
#ifdef _WIN32
#define clear() system("cls");
#endif // _WIN32
#ifdef linux
#define clear() system("clear");
#endif // linux
或
#ifdef _WIN32
#define clear() \
system("cls");
#endif // _WIN32
#ifdef linux
#define clear() \
system("clear");
#endif // linux
我的问题应该不难回答:
我正在尝试编写一个 C 程序来训练一些 C 技能。 但是我不知道这个程序将来会在哪个系统上 运行。
我想确保我已经涵盖了 Unix 和 DOS 系统。
我正在尝试这样做:
#ifdef _WIN32
#define clear()
system("cls");
#endif // _WIN32
#ifdef linux
#define clear()
system("clear");
#endif // linux
这似乎是错误的,因为它告诉我
expected declaration specifiers or '...' before string constant"
虽然我不确定我是否完全按照这个定义做对了(例如,我可以在此处包含 2 个单独的 headers >> 使用更多内存)
这里一定有新手语法错误。
宏展开应该和宏名在同一行。如果你真的想要它们超过两行,请使用 \
到 "escape" 换行符。
#ifdef _WIN32
#define clear() system("cls");
#endif // _WIN32
#ifdef linux
#define clear() system("clear");
#endif // linux
或
#ifdef _WIN32
#define clear() \
system("cls");
#endif // _WIN32
#ifdef linux
#define clear() \
system("clear");
#endif // linux