在Visual Studio 2013中编译简单C代码
我试图在VS2013中编译一个非常简单的C代码。我事先在谷歌上搜索了一下,我意识到我需要遵循某些步骤,例如在我的项目属性中将编译器从在Visual Studio 2013中编译简单C代码,c,C,我试图在VS2013中编译一个非常简单的C代码。我事先在谷歌上搜索了一下,我意识到我需要遵循某些步骤,例如在我的项目属性中将编译器从Default更改为compileasc code 问题是,当我编译以下代码时: #include <stdio.h> main() { printf("Hello World! \n"); sleep(5); } 如果我将代码更改为: #include <stdio.h> #include <Windows.h>
Default
更改为compileasc code
问题是,当我编译以下代码时:
#include <stdio.h>
main()
{
printf("Hello World! \n");
sleep(5);
}
如果我将代码更改为:
#include <stdio.h>
#include <Windows.h>
main()
{
printf("Hello World! \n");
Sleep(5000);
}
#包括
#包括
main()
{
printf(“你好,世界!\n”);
睡眠(5000);
}
那么它工作得很好
如何才能成功编译第一个代码?
我有一些C语言的测试代码,我需要使用它们。如果我不能解决上述问题,那么我必须更新所有语法
睡眠
是一种非标准功能:
- 在UNIX上使用
- 在MS Windows上使用
void sleep (int seconds)
{
Sleep (seconds * 1000); // Converting to milliseconds
}
睡眠
是一种非标准功能:
- 在UNIX上使用
- 在MS Windows上使用
void sleep (int seconds)
{
Sleep (seconds * 1000); // Converting to milliseconds
}
如何才能成功编译第一个代码
您不能(至少正如您所说的那样,完全使用此代码)。关键是
头并没有为sleep()
提供声明,C标准要求每个函数都需要在调用之前声明。就这么简单
第二件事是您想要的sleep()
函数可能来自(特别是来自header)。但是,Visual Studio 2013不符合POSIX。因此,解决方案是使用Sleep()
,这是在
标题中声明的,或者可能是其他一些替代方法
如何才能成功编译第一个代码
您不能(至少正如您所说的那样,完全使用此代码)。关键是
头并没有为sleep()
提供声明,C标准要求每个函数都需要在调用之前声明。就这么简单
第二件事是您想要的sleep()
函数可能来自(特别是来自header)。但是,Visual Studio 2013不符合POSIX。因此,解决方案是使用Sleep()
,这是在
头中声明的,或者可能是其他一些替代方法。不是C标准函数
如果您使用的是UNIX系统,请包括
。但是,如果您在windows系统上,它应该在
中(这就是为什么您的第二个版本的代码能够成功编译的原因)
如果您想在两种系统中都使用,请尝试以下方法(从):
不是C标准函数
如果您在UNIX系统上,则包含
。但是,如果您在windows系统上,则应包含在
(这就是为什么您的第二个版本的代码能够成功编译的原因)
如果您想在两种系统中都使用,请尝试以下方法(从):
睡眠函数未在
中声明。如果您在unix上,请使用unistd.h中的sleep()
,或者对于windows,请使用Winbase.h(windows.h)中的sleep()
。如果您想了解sleep()
的工作原理,可以查看
如果不想将sleep()
更改为sleep()
,则可以使用宏:
#定义睡眠睡眠((s)*1000)
宏是不好的,因此您可能不想在生产代码中执行此操作,但宏的优点是可以保证它是内联的,这将导致更快的代码。睡眠函数未在
中声明。如果您在unix上,请使用unistd.h提供的sleep()
,或者对于windows,sleep()
来自Winbase.h(windows.h)。如果您想了解Sleep()
的工作原理,可以查看
如果不想将sleep()
更改为sleep()
,则可以使用宏:
#定义睡眠睡眠((s)*1000)
宏是不好的,所以你可能不想在生产代码中这样做,但宏的优点是保证它是内联的,这将导致更快的代码。对于较旧的MSVC,它将是
#include
谢谢你的回复。我正在Windows平台上运行我的代码。我还需要那个头吗?我想这只是一个问题在Unix平台上使用eded。尽管如此,我现在收到了这个错误:error 1 error C1083:无法打开include文件:“unistd.h”:没有这样的文件或目录
@cpp_prog您是否正确阅读了我的问题?我已经提到了!添加Windows.h
需要我将sleep(5)
与sleep(5000)交换
。整个线程将找到一个解决方法,不遵循该路径!对于较旧的MSVC,它将是#include
,感谢您的回复。我正在Windows平台上运行我的代码。我仍然需要该标题吗?我认为只有在Unix平台上才需要该标题。不过,我现在收到以下错误:错误1错误C1083:无法打开includee file:'unistd.h':没有这样的文件或目录
@cpp\u prog你是否正确地阅读了我的问题?我已经提到了!添加Windows.h
需要我将sleep(5)
与sleep(5000)
交换。整个线程将找到一个不遵循该路径的解决方法!
#ifdef __linux__
//linux include code goes here
#elif _WIN32
// windows include code goes here
#else
#endif