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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.01.2010, 10:12   #1
LMnet
 
Регистрация: 14.01.2010
Сообщений: 9
По умолчанию Проблема с заданием аргументов функции по умолчанию

Вот например имеется программа:

Код:
#include <stdio.h>
#include <stdlib.h>

int func(int a,int b=4)
{
  return a+b;
}

int main(int argc, char *argv[])
{
  int x=1,y=2;
  y=func(x);
  printf("%d\n",y);
  system("PAUSE");	
  return 0;
}
В старом консольном компиляторе Borlandc 3.1 все правильно работает. Однако, я использую в основном wxDev-C++. Но этот компилятор ругается на первую строчку, а конкретно вот что говорит:

syntax error before '=' token

Выводится еще ряд ошибок, но все они исчезают, если убрать присвоение значения по умолчанию переменной b в объявлении загаловка функции. Я было подумал, что этот компилятор не принимает значения по умолчанию, но почитав к нему документацию нашел пример с функцией, в которой один из параметров задан по умолчанию. Настройки компилятора тоже менял по всякому. Подскажите в чем может быть дело?
LMnet вне форума Ответить с цитированием
Старый 15.01.2010, 14:28   #2
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

судя по подключаемым библиотекам Вы создали проект C, а не C++? Какое расширение имеет основной файл? C не поддерживает аргументов по умолчанию
netrino вне форума Ответить с цитированием
Старый 15.01.2010, 14:37   #3
IT-man
АльTRUEи$т
Форумчанин
 
Аватар для IT-man
 
Регистрация: 19.03.2009
Сообщений: 784
По умолчанию

А не проще написать return a +4; и б вообще выкинуть из функции?
Цитата:
«Никто не войдет в Рай, имея хотя бы крупицу гордыни в своем сердце». «Аллах Красив и любит красоту. Гордыня означает отказ от истины и высокомерие»
IT-man вне форума Ответить с цитированием
Старый 15.01.2010, 14:44   #4
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Цитата:
Сообщение от IT-man Посмотреть сообщение
А не проще написать return a +4; и б вообще выкинуть из функции?
Ну а если мне захотелось вместо 4 что-то другое? Не проще.
netrino вне форума Ответить с цитированием
Старый 15.01.2010, 17:59   #5
LMnet
 
Регистрация: 14.01.2010
Сообщений: 9
По умолчанию

Цитата:
Сообщение от IT-man Посмотреть сообщение
А не проще написать return a +4; и б вообще выкинуть из функции?
Дело в том, что данный пример написан исключительно для того, чтобы показать в чем проблема. С самой проблемой я столкнулся когда писал совершенно другую программу.

И действительно, проблема была в том, что я создавал C-проект а не C++. Спасибо за помощь, теперь все заработало!
LMnet вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Простейшая задача на функцию со сменным количеством аргументов iFireFly Общие вопросы C/C++ 1 07.01.2010 12:21
Предусмотреть задание параметров функции «по умолчанию» и с клавиатуры. R@Ziel Помощь студентам 2 01.12.2009 00:29
Проблема с заданием условий. Помогите пожалуйста. lubov09 Microsoft Office Excel 7 04.11.2009 13:55
Алгоритм наискорейшего спуска для любого количества аргументов целевой функции Evil Sun Общие вопросы C/C++ 5 08.05.2009 13:18
Типы аргументов при перегрузке функций Arkuz Общие вопросы C/C++ 4 24.02.2009 01:16