Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Встраиваемые функции 
:(
    Опции темы
tofreesky
Дата 17.6.2010, 20:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 152
Регистрация: 9.6.2010

Репутация: нет
Всего: нет



Как правильно будет записать?

Код

#include <iostream>

int main()
{
 int dat;
 
 void func1()
 {
  
 }
 
 func1(); 
 return 0;
}


Си компилятор такое компилировал, а С++ нет.



Это сообщение отредактировал(а) tofreesky - 17.6.2010, 20:42
PM MAIL   Вверх
toxx
Дата 17.6.2010, 21:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 653
Регистрация: 4.3.2009
Где: НН

Репутация: 4
Всего: 13



Код

#include <iostream>
using namespace std;
 void func1();
int main()
{
 int dat;
 

 func1(); 
 return 0;
}
 void func1()
 {
  
 }

 

Это сообщение отредактировал(а) toxx - 17.6.2010, 21:17
PM MAIL   Вверх
tofreesky
Дата 17.6.2010, 21:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 152
Регистрация: 9.6.2010

Репутация: нет
Всего: нет



И зачем мне так? Мне нужно функцию внутри функции с доступом к локальным переменным главной функции
PM MAIL   Вверх
boostcoder
Дата 17.6.2010, 22:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 20
Всего: 110



сопрограммы или лямбда.
PM WWW   Вверх
borisbn
Дата 18.6.2010, 06:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 21
Всего: 135



> Мне нужно функцию внутри функции с доступом к локальным
переменным главной функции

В Си++ стандарта 2003 года это невозможно. Кстати, как это у тебя в Си получилось - ума не приложу.
Чтобы получить доступ к переменной, передай её в функцию по ссылке


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
mes
Дата 18.6.2010, 08:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(tofreesky @  17.6.2010,  19:31 Найти цитируемый пост)
Си компилятор такое компилировал, а С++ нет.

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

Добавлено через 52 секунды
Цитата(tofreesky @  17.6.2010,  19:31 Найти цитируемый пост)
Си компилятор такое компилировал, 

может это был паскаль (дельфи) ?


--------------------
PM MAIL WWW   Вверх
586
Дата 18.6.2010, 10:53 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2243
Регистрация: 8.5.2006

Репутация: 8
Всего: 146



Цитата(mes @  18.6.2010,  09:58 Найти цитируемый пост)
Цитата(tofreesky @  17.6.2010,  21:31 Найти цитируемый пост)
Си компилятор такое компилировал,  

может это был паскаль (дельфи) ? 

Как ни странно, gcc это может.
http://codepad.org/DOJk29Uz
PM   Вверх
azesmcar
Дата 18.6.2010, 11:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 52
Всего: 211



Цитата(586 @  18.6.2010,  10:53 Найти цитируемый пост)
Как ни странно, gcc это может.
http://codepad.org/DOJk29Uz 

Да, довольно таинственная штука. Судя по статьям в интернете должен быть флаг -fnested-functions, но его нет, проверял на двух разных версиях (4.5.0 и 4.1.2), также эти две версии приведенный код не скомпилировали, а поиск -fnested-functions по гуглу вообще ничего не выдает, хотя встречается на сайтах неоднократно smile 
PM   Вверх
tofreesky
Дата 18.6.2010, 12:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 152
Регистрация: 9.6.2010

Репутация: нет
Всего: нет



Что такое "лямбда" ? 
PM MAIL   Вверх
azesmcar
Дата 18.6.2010, 12:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 52
Всего: 211



Цитата(tofreesky @  18.6.2010,  12:09 Найти цитируемый пост)
Что такое "лямбда" ?  

http://lmgtfy.com/?q=%D0%BB%D1%8F%D0%BC%D0...C%2B%2B&l=1

PM   Вверх
586
Дата 18.6.2010, 17:49 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2243
Регистрация: 8.5.2006

Репутация: 8
Всего: 146



Цитата(azesmcar @  18.6.2010,  12:18 Найти цитируемый пост)
Да, довольно таинственная штука. Судя по статьям в интернете должен быть флаг -fnested-functions, но его нет, проверял на двух разных версиях (4.5.0 и 4.1.2), также эти две версии приведенный код не скомпилировали, а поиск -fnested-functions по гуглу вообще ничего не выдает, хотя встречается на сайтах неоднократно smile 

У меня gcc 4.4.1 нормально компилирует
Код
~/src> ls
asdf.c
~/src> cat asdf.c
#include <stdio.h>

int main()
{
  int x = 5;
  puts("000");

  void func1()
  {
    printf("%d\n", x);
  }
  puts("111");
  func1();
  puts("222");
  return 0;
}
~/src> gcc asdf.c 
~/src> ls
asdf.c  a.out
~/src> ./a.out
000
111
5
222

PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0577 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.