为 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