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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.12.2009, 01:14   #1
Darth.Vader
Пользователь
 
Аватар для Darth.Vader
 
Регистрация: 04.12.2009
Сообщений: 63
По умолчанию Странная реакция среды на ссылки

Добрый вечер. Такая вот загогулина: пишу функцию, где параметры передаются ссылками. Много раз так делал - и ничего. А тут - ни в какую! Пишу так:
Код:
void swap(int& a, int& b)
{
    a+=b;
    b=a-b;
    a-=b;
}
А получаю:
Цитата:
C:\codeblocksprojects\test2\11\main .c|3|error: syntax error before '&' token|
C:\codeblocksprojects\test2\11\main .c||In function `swap':|
C:\codeblocksprojects\test2\11\main .c|5|error: `a' undeclared (first use in this function)|
C:\codeblocksprojects\test2\11\main .c|5|error: (Each undeclared identifier is reported only once|
C:\codeblocksprojects\test2\11\main .c|5|error: for each function it appears in.)|
C:\codeblocksprojects\test2\11\main .c|5|error: `b' undeclared (first use in this function)|
Среда: Code::Blocks 8.02
Darth.Vader вне форума Ответить с цитированием
Старый 06.12.2009, 01:17   #2
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Поменяйте расширение main.c на main.cpp. В зависимости от расширения файл компилируется либо по стандарту C, либо по стандарту C++. В C ссылок нет
netrino вне форума Ответить с цитированием
Старый 06.12.2009, 01:23   #3
forsaken66
Куды бечь?
Форумчанин
 
Аватар для forsaken66
 
Регистрация: 05.10.2009
Сообщений: 104
По умолчанию

Вот так все работает. VS 2008. Не вижу проблем. Может не (int& a) писать а (int &a)?

Код:
#include "stdafx.h"
#include "iostream"
#include "conio.h"
using namespace std;

void swap(int &a, int &b)
{
    a+=b;
    b=a-b;
    a-=b;
}
int main()
{
	int e=5,f=10;
	swap(e,f);
	cout<<"e="<<e<<" f="<<f;

    _getch();
	return 0;
}
Не хватало всего одного байта. Да-да, того самого, что из восьми бит состоит.
forsaken66 вне форума Ответить с цитированием
Старый 06.12.2009, 01:30   #4
Darth.Vader
Пользователь
 
Аватар для Darth.Vader
 
Регистрация: 04.12.2009
Сообщений: 63
По умолчанию

netrino
О, помогло! Спасибо.

forsaken66
Цитата:
Может не (int& a) писать а (int &a)?
Не... без разницы. Дело в том, что я проект начал под С. Ссылок там действительно нет

Последний раз редактировалось Darth.Vader; 06.12.2009 в 01:32.
Darth.Vader вне форума Ответить с цитированием
Старый 06.12.2009, 01:57   #5
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

2forsaken66
Цитата:
Может не (int& a) писать а (int &a)?
порадовал)

можно еще попробовать (int & a).
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 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
реакция на клик по ячейке ShamanK Microsoft Office Excel 7 01.12.2009 00:04
странная реакция FloatToStr CrazyXaoc Общие вопросы C/C++ 6 29.05.2009 17:35
Странная реакция drknn Помощь студентам 2 02.09.2007 15:51
Реакция IdTCPClient OrdJONY Работа с сетью в Delphi 3 30.08.2007 10:16
Реакция на сочетание клавишь micaell Win Api 3 20.04.2007 02:13