我想根据使用的操作系统定义一个常量 就这样:
#include <stdio.h>
#ifdef _Win32 //Used for system("cls") command
#include <process.h>
#define CLEAR "system(\"cls\")"
#endif
#ifdef __APPLE__
#define CLEAR "system(\"clear\")"
#endif
int main()
{
CLEAR;
}
Xcode给出了一个错误,指出表达式结果未用于
#define CLEAR "system(\"clear\")
和主要功能内部。
我在Mac上。
答案 0 :(得分:2)
使用:
#define CLEAR system("clear")
不是
#define CLEAR "system(\"clear\")"
您收到错误,因为您的宏调用已替换为:
"system(\"clear\")";
这是一个无用的表达式语句(表达式是这里的字符串),例如:
0; // valid but pointless
答案 1 :(得分:0)
#define CLEAR system("clear")
而不是
#define CLEAR "system(\"clear\")"
编译器将创建一个新的C代码(称为预处理器代码),其中将用其内容替换宏名称。
所以如果你用这种方式定义宏:
#define CLEAR "system(\"clear\")"
您将获得编译器生成的新代码(预处理器代码):
int main()
{
"system(\"clear\")";
}
您可以使用gcc -E
答案 2 :(得分:0)
尝试改变你的主要功能:
int main()
{
int rc;
rc = CLEAR;
return rc;
}
您需要捕获system()调用的返回值并使用它