use*_*887 2 c unix linux windows macos
如何在C中确定终端应用程序中的用户操作系统?例如,在下面的代码中,我应该替换windows和linux使用什么?
/* pseudo code */
if(windows)
{system(cls)}
else if(linux)
{system(clear)}
else{...}
Run Code Online (Sandbox Code Playgroud)
我应该提一下,我是C的初学者,需要这样的东西,所以我的代码可以在windows和/或linux上运行,而不需要为每个代码创建单独的源代码.
通常,这是通过构建系统中的宏来完成的(因为您必须为每个系统构建代码.
例如 gcc -DLINUX myfile.c
然后在myfile.c中
#ifdef LINUX
... do stuff for linux ...
#else if defined(WINDOWS)
... do something for windows ...
#else if ... and so on.
...
#endif
Run Code Online (Sandbox Code Playgroud)
(大多数情况下,您可以找到一些实际上不需要在-D<something>命令行上添加a 的方法,通过使用预定义的宏来创建用于为该体系结构编译的工具).
或者,您可以执行相同的操作,但通过打印"清除屏幕" 的ANSI转义序列,可以更快更好(但不是100%可移植):
putstr("\033" "2J");
Run Code Online (Sandbox Code Playgroud)
是的,这是两个字符串,因为如果你编写"\0332J"编译将使用字符0332,而不是字符033,然后是数字2.所以两个字符串彼此相邻将使用.
| 归档时间: |
|
| 查看次数: |
236 次 |
| 最近记录: |