在Visual Studio 2013中编译简单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>

我试图在VS2013中编译一个非常简单的C代码。我事先在谷歌上搜索了一下,我意识到我需要遵循某些步骤,例如在我的项目属性中将编译器从
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