2014-10-16 2 views
2
#include <stdio.h> 
#include <stdlib.h> 
void main() 
{ 
    system("dir"); 
} 

Я читал во многих книгах на C++, где system() используется для выполнения программ командной строки. Но когда я попробовал ту же команду на C, она работала отлично. Поэтому мой вопрос заключается в том, является ли его стандартная функция C или C++? Пожалуйста, будьте либеральными, поскольку я новичок в программировании на С.Использует ли функция system() C или C++?

+7

Это оба. Но 'void main' также не является законным. –

+0

@JamesKanze фактически, многие компиляторы для встроенных систем (разумеется, нестандартные расширения) ожидают 'void main()'. –

+3

@FilippoLauria Возможно, но если не указано в вопросе, то следует принять общий вопрос о стандарте C++ –

ответ

0

Оба c и cpp поддерживают функциональную систему, поскольку они поддерживают stdlib.h, который содержит прототип функции system().

5

В системная функция объявлена ​​в stdlib.h, это может рассматриваться как функция С. Но в C++ stdlib.h объединяется в пространство имен std и находится в cstdlib include в этой форме. Поэтому правильный ответ - «оба».

3

Это оба. C определяет множество функций. C++ определяет множество функций, которые точно такие же, как в C, некоторые, которые тонко отличаются от того, как они находятся на C, и множество функций и классов, которые вообще не являются частью C. Зная, что функция является частью стандартного C++, ничего не говорит о том, является ли она частью стандарта C, и зная, что функция является частью стандарта C, мало говорит о том, является ли она частью стандартного C++.

4

Оба: он определен стандартной библиотекой C, а стандартная библиотека C++ содержит библиотеку C.

В C++ вы должны включить заголовок стиля C++, <cstdlib> и ссылаться на него как std::system. Включение заголовков C напрямую устарело.

Смежные вопросы