Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.03.2011, 12:17   #1
the_deer_one
Участник клуба
 
Аватар для the_deer_one
 
Регистрация: 04.04.2010
Сообщений: 1,554
По умолчанию параметры в функциях си

Зачем объявляют типы подставляемых значений между именем и телом функции?

Код:
#include<stdio.h>
void foo(a, b)
int a; int b;
 {
  printf("%d,%d",a,b);
  }

int main() {
    foo(3,4);
return 0;
}
P.S. и как такой синтаксис называется?
the_deer_one вне форума Ответить с цитированием
Старый 09.03.2011, 12:38   #2
Летучий_СкилетиК
Форумчанин
 
Аватар для Летучий_СкилетиК
 
Регистрация: 04.02.2011
Сообщений: 260
Счастье

Цитата:
Сообщение от the_deer_one Посмотреть сообщение
Зачем объявляют типы подставляемых значений между именем и телом функции?

Код:
#include<stdio.h>
void foo(a, b)
int a; int b;
 {
  printf("%d,%d",a,b);
  }

int main() {
    foo(3,4);
return 0;
}
не знаю как это называется и для чего делают так!!, но моя машина отказывается компилировать это...
ругается что идентификатор не обьявлен
Цитата:
void foo(a, b)
Я демаю так:
Цитата:
foo: вероятно, инициализатор, использующий стиль функции, является определением функции

Последний раз редактировалось Летучий_СкилетиК; 09.03.2011 в 12:41.
Летучий_СкилетиК вне форума Ответить с цитированием
Старый 09.03.2011, 13:33   #3
onewho
Форумчанин
 
Регистрация: 29.09.2010
Сообщений: 636
По умолчанию

это называется прототип, только это не прототип а фигня какая-то
onewho вне форума Ответить с цитированием
Старый 09.03.2011, 13:34   #4
the_deer_one
Участник клуба
 
Аватар для the_deer_one
 
Регистрация: 04.04.2010
Сообщений: 1,554
По умолчанию

Летучий_СкилетиК
Ты компилятором си собирал? С++ по любому будет ругаться.
the_deer_one вне форума Ответить с цитированием
Старый 09.03.2011, 13:48   #5
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

это старый вариант объявления функции на сях (k&r c). сейчас так не пишут. но нормальные сишные компиляторы такой код скомпилят
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 09.03.2011, 13:48   #6
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

Цитата:
Код:
void foo(a, b)
int a; int b;
По-моему так раньше тип формальных параметров обьявляли!
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 09.03.2011, 14:17   #7
Vago
Форумчанин
 
Регистрация: 15.01.2010
Сообщений: 948
По умолчанию

Цитата:
Сообщение от the_deer_one Посмотреть сообщение
P.S. и как такой синтаксис называется?
Такой синтаксис называется "old-style function declarator". Так было изначально предложено создателями языка. В моей K&R 1988 года этот способ - вообще единственный! Стандарт ANSI/ISO 9899-1990 разрешает его в первом параграфе раздела "Semantics" п.6.7.1 и "не рекомендует" к использованию ниже, в п.6.9.5, где сказано: "The use of function definitions with separate parameter identifier and declaration lists (not prototype-format parameter and identifier declarators) is an obsolescent feature". M$ поддерживает до сих пор, выдавая предупреждение. Про другие компиляторы - не скажу.

Последний раз редактировалось Vago; 09.03.2011 в 14:49.
Vago вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Параметры запуcка. как обрабатывать параметры вида -somecmd "?" Человек_Борща Общие вопросы Delphi 1 15.01.2011 15:48
ПАРАМЕТРЫ-КОНСТАНТЫ, НЕТИПИЗИРОВАННЫЕ ПАРАМЕТРЫ ПОДПРОГРАММ, МАССИВЫ И СТРОКИ ОТКРЫТОГО ТИПА Kira09 Паскаль, Turbo Pascal, PascalABC.NET 0 19.12.2010 17:28
Не разбираюсь в функциях logok Общие вопросы C/C++ 5 03.04.2010 00:30
Как передать в поток параметры? И как из потока параметры достать? Anekdot Общие вопросы Delphi 2 19.02.2010 22:40
Форматирование текста в функциях. shadrikoff Microsoft Office Excel 5 26.02.2009 08:13