#include <stdio.h>
#include <stdlib.h>
void main ()
{
system("dir");
}
我在很多C++书籍中看到system()
用于执行命令行程序。但是当我在C语言中尝试相同的命令时,它却完美地工作了。因此,我的问题是它是否是标准的C或C++函数?请您宽容一些,因为我是C编程的新手。
由于system函数声明在stdlib.h头文件中,因此它可以被视为C函数。但在C++中,stdlib.h已经合并到std命名空间中,并以这种形式位于cstdlib包含文件中。因此正确答案是"both"。
这既是C语言也是C++语言。
两种语言都使用标准C库,而标准的C++库包含了C库。
在C++中,您应该包含C++样式头文件<cstdlib>
,并将其称为std::system
。直接包含C头文件已经被弃用。
这既是对的,也是不对的。C定义了许多函数。C++定义了许多与C完全相同的函数,一些略微不同于C中的函数,以及许多在C中不存在的函数和类。知道一个函数是标准C++的一部分并不能说明它是否是标准C的一部分,而知道一个函数是标准C的一部分也不能说明它是否是标准C++的一部分。
由于它们都支持stdlib.h,其中包含system()函数的原型,因此c和cpp都支持函数system。
void main
在任何一种情况下都是不合法的。 - James Kanzevoid main()
。 - Filippo Lauriasystem
呢?非托管环境有很多自由度;它的启动方式是实现定义的,并且大多数标准库(包括system
)都是可选的。在大多数情况下,我不会期望非托管环境支持system
(当然也不支持system("dir")
)。 - James Kanze