Программирование на C и C++

Онлайн справочник программиста на C и C++

Различие между с и с++

По большей части С++ представляет собой надстройку над стандартным ANSI С, и фактически все программы на С являются также программами и на С++. Тем не менее между этими языками имеется несколько различий, и наиболее важные из них обсуждаются ниже.

Одним из наиболее важных различий между С и С++ является тот факт, что в С функция, объявленная следующим образом:

int f();

ничего не говорит о своих параметрах. Это означает, что функция может иметь параметры или не иметь их вовсе. В отличие от этого, в С++ объявленная таким образом функция не имеет параметров. Иными словами, в С++ следующие два объявления эквивалентны:

int f();
int f(void);

В С++ ключевое слово void является факультативным. Многие программисты на С++ включают void в качестве средства, улучшающего читаемость программы и указывающего, что у функции нет параметров.

В С++ все функции должны иметь прототипы. В С это требование является факультативным (хотя хорошая программистская практика подразумевает использование прототипов и в С-программах).

Небольшая, но вместе с тем потенциально очень важная разница между С и С++ заключается в том, что в С символьная константа автоматически повышается до целого числа. В С++ это не так.

В С объявление глобальной переменной несколько раз не является ошибкой, хотя и не служит признаком хорошего программирования. В С++ это является ошибкой.

В С идентификатор имеет по крайней мере 31 значащий символ. В С++ все символы рассматри­ваются как значащие. Однако, как показывает практика, очень длинные идентификаторы редко нужны.

В С можно вызвать функцию main() из программы, хотя это и нетипично. В С++ это недопус­тимо.

В С нельзя взять адрес регистровой переменной. В С++ можно это сделать.