|
||||
|
15.3 Анахронизмы Изложенные здесь расширения могут предоставляться для того, чтобы упростить использование C программ как С++ прорамм. Обратите внимание, что каждая из этих возможностей сдержит нежелательные аспекты. Предоставляющая их реализация должна также обеспечивать пользователю способ удостовериться, что они не встречаются в исходном файле. Прежнее неопределенное имя может использоваться как имя функции в вызове. В этом случае имя будет неявно описано как функция, возвращающая int с типом параметра (...). Ключевое слово void может использоваться для указания того, что функция не получает параметров, так что (void) эвивалентно (). Могут использоваться программы, в которых используется синтаксис определения функций в C старое_определение_функции: спецификаторы_описания opt старый_описатель_функции список_описателей тело_функции старый_описатель_функции: описатель (* список_параметров *) список_параметров: идентификатор идентификатор , идентификатор например, max(a,b) (* return (a«b) ? b : a; *) Если функция, описанная как эта, была ранее описана, тип ее параметра будет принят (...), то есть, непроверенный. Если она была описана, ее тип должен согласоваться с типом описния. Вместо :: может использоваться точка для спецификации имени в определении функции члена. Например: int cl.fct() (* /* ... */ *) Одно и то же имя может быть описано одновременно и для класса или перечисления, и для объекта данных или функции в одной и той же области видимости. |
|
||