break в С++ (Выход из функции)

Модератор: Модераторы разделов

NickLion
Сообщения: 3408
Статус: аватар-невидимка
ОС: openSUSE Tumbleweed x86_64

Re: break в С++

Сообщение NickLion »

gavrasio писал(а):
18.12.2015 23:42
Наверное, так. Если функция void, то retuern выводит из функции без сохранения локальных переменных.

Локальные переменные на то и локальные, что при завершении функции они более не существуют.

gavrasio писал(а):
18.12.2015 23:42
Если int, выводит retuern(a), но так как a может быть глобальной, то ничего не выводит.

int не может содержать "ничего", int может хранить только целое число в определённом диапазоне, для большинства современных архитектур в диапазоне -2147483648 — +2147483647.

gavrasio писал(а):
18.12.2015 23:42
Если я определю функцию с аргументом как ссылка или определитель и буду возвращать адрес переменной, я и из функции выйду моментально и сохраню обрабатываемую переменную( значение её).

Если Вы уже изменили значение переменной по ссылке, то отменить это действие автоматически нельзя.

gavrasio писал(а):
19.12.2015 00:38
Если superbreak развернуть как:

Код: Выделить всё

return(1);
else

и i=-2, то k=1.

Что значит "если"? Исходя из каких соображений компилятор должен сгенерировать такой код?
Спасибо сказали:
gavrasio
Сообщения: 109
ОС: Mageia 4

Re: break в С++

Сообщение gavrasio »

Bizdelnick писал(а):
19.12.2015 14:27
gavrasio писал(а):
19.12.2015 00:38
Если superbreak развернуть как:

Код: Выделить всё

return(1);
else

и i=-2, то k=1.

Вот! Наконец-то! Как Вы видите, без return обойтись не получается. Следующий вопрос — почему должна возвращаться именно единица? А если единица — допустимое значение при каких-то иных входных данных, и это нарушит логику программы? Не лучше ли явно прописать, что надо возвращать?
Да, кстати, else тут не нужен.

Если посмотреть Ваш код:

Код: Выделить всё

#include <iostream>

int func()
{
  int i;
  std::cin >> i;
  if (i < 0)
    superbreak; // я не знаю, как это работает
  return i * 2;
}

int main()
{
  int k = func();
  std::cout << k;
  return 0;
}

, то любое истинное возвращаемое значение никогда не будет равно 1(i*2). А так, как Вы определили i как локаль, - никаких накладок не должно быть.
А else поставил только для удобного чтения для себя.
Спасибо сказали:
gavrasio
Сообщения: 109
ОС: Mageia 4

Re: break в С++

Сообщение gavrasio »

NickLion писал(а):
19.12.2015 17:56
gavrasio писал(а):
18.12.2015 23:42
Если я определю функцию с аргументом как ссылка или определитель и буду возвращать адрес переменной, я и из функции выйду моментально и сохраню обрабатываемую переменную( значение её).

Если Вы уже изменили значение переменной по ссылке, то отменить это действие автоматически нельзя.



То есть, если у меня в функции аргумент по ссылке, я должен вернуть адрес переменной , return(1) уже не проходит?
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: break в С++

Сообщение Bizdelnick »

gavrasio писал(а):
20.12.2015 23:01
Если посмотреть Ваш код, то любое истинное возвращаемое значение никогда не будет равно 1

Правильно. Поэтому я и написал «если».
Вы посмотрели код и подставили то значение, которое не может получиться другими путём. Но в зависимости от того, что делает функция, такие значения могут быть другими, а может их и не быть вовсе. Поэтому никакого универсального superbreak на все случаи жизни не существует.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: break в С++

Сообщение Bizdelnick »

gavrasio писал(а):
20.12.2015 23:10
То есть, если у меня в функции аргумент по ссылке, я должен вернуть адрес переменной , return(1) уже не проходит?

Что значит — не подходит? То, что Вы передаёте функции как аргумент, и то, что она возвращает, никак между собой не связано. Вы имеете полное право передать значение по ссылке (или по указателю), изменить его в функции, а вернуть что-то совсем другое.
В общем, возьмите нормальный учебник вместо трёхнедельного и начните его вдумчиво изучать. У Вас нет понимания самых базовых концепций языка, а без него никакое форумное общение не поможет продвинуться в обучении.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
gavrasio
Сообщения: 109
ОС: Mageia 4

Re: break в С++

Сообщение gavrasio »

Bizdelnick писал(а):
21.12.2015 00:12
gavrasio писал(а):
20.12.2015 23:01
Если посмотреть Ваш код, то любое истинное возвращаемое значение никогда не будет равно 1

Правильно. Поэтому я и написал «если».
Вы посмотрели код и подставили то значение, которое не может получиться другими путём. Но в зависимости от того, что делает функция, такие значения могут быть другими, а может их и не быть вовсе. Поэтому никакого универсального superbreak на все случаи жизни не существует.


Ваше:
Но в зависимости от того, что делает функция
Мы говорили пр ВАШУ функцию.
такие значения могут быть другими, а может их и не быть вовсе.
Какие другие и в какой другой функции?

Bizdelnick писал(а):
21.12.2015 00:18
В общем, возьмите нормальный учебник вместо трёхнедельного и начните его вдумчиво изучать. У Вас нет понимания самых базовых концепций языка, а без него никакое форумное общение не поможет продвинуться в обучении.

Может!
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: break в С++

Сообщение Bizdelnick »

gavrasio писал(а):
21.12.2015 00:30
Какие другие и в какой другой функции?

Откуда я знаю? Вы вроде что-то писать собрались. Какие-то функции, из которых Вам потребовалось выходить «по типу break». Вам же не эта моя псевдофункция нужна, которую я для примера придумал.

gavrasio писал(а):
21.12.2015 00:30
Мы говорили пр ВАШУ функцию.

Учитесь делать обобщения. Поговорили про мою — пора поговорить и о других.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
gavrasio
Сообщения: 109
ОС: Mageia 4

Re: break в С++

Сообщение gavrasio »

Bizdelnick писал(а):
21.12.2015 00:50
gavrasio писал(а):
21.12.2015 00:30
Какие другие и в какой другой функции?

Откуда я знаю? Вы вроде что-то писать собрались. Какие-то функции, из которых Вам потребовалось выходить «по типу break». Вам же не эта моя псевдофункция нужна, которую я для примера придумал.

gavrasio писал(а):
21.12.2015 00:30
Мы говорили пр ВАШУ функцию.

Учитесь делать обобщения. Поговорили про мою — пора поговорить и о других.

Код: Выделить всё

#include<iostream>
 using namespace std;

 int main()
 {
   int A=10, *pA=&A, *pB=new int;  //только один раз декларируется int: int*pB=new int
  cout<<"Если 0, выхожу из main, возвращаю -1"<<endl; cin>>(*pB);
  //*pB=15;
     cout<<"\tA:"<<A<<"\t*pA:"<<*pA<<"\tpA:"<<pA<<"\t&A:"<<&A<<endl;
     cout<<"\t*pB:"<<*pB<<"\tpB:"<<pB<<endl;
     cout<<"Очищаем и обновляем *pB"<<endl;
     delete pB;

     cout<<"\t*pB:"<<*pB<<"\tpB:"<<pB<<endl;

     pB=new int; *pB=28;  //впоследствии int не пишется: pB=new int
     cout<<"\t*pB:"<<*pB<<"\tpB:"<<pB<<endl;
    if(*pB==0)
    return(-1);

     while(1)
     {
         delete pB;
         cout<<"\t*pB:\t"<<*pB<<endl<<"\tpB:\t"<<pB<<endl;
     cout<<"Изменяем *pB:";pB=new int; cin>>*pB;
     cout<<"\t*pB:"<<*pB<<"\tpB:"<<pB<<endl;
     if(*pB==0)break;
     delete pB;
     cout<<"Изменяем указатель через new. *pB:"; pB=new int; cin>>*pB;
     cout<<"\t*pB:"<<*pB<<"\tpB:"<<pB<<endl;
     if(*pB==0)break;
     }

   return 0;

}

Компилю и выполняю:

Код: Выделить всё

[extract@93 myf]$ g++ ukaz13.cpp
[extract@93 myf]$ ./a.out
Если 0, выхожу из main, возвращаю -1
0
        A:10    *pA:10  pA:0xbfa63434   &A:0xbfa63434
        *pB:0   pB:0x8362008
Очищаем и обновляем *pB
        *pB:0   pB:0x8362008
        *pB:28  pB:0x8362008
        *pB:    0
        pB:     0x8362008
Изменяем *pB:

Не хочет при *pB==0 уходить из main.
Это, наверное, что я для *pB сделал delete.
Увидел, что pB внизу присвоил не нулевое значение.
Спасибо сказали:
Аватара пользователя
s.xbatob
Сообщения: 1139
ОС: Fedora

Re: break в С++

Сообщение s.xbatob »

Вот не вижу ни одного места, где объекту, на который указывает pB, присваивается 0. Зато вижу кучу обращений к уже удалённому объекту.
Спасибо сказали:
gavrasio
Сообщения: 109
ОС: Mageia 4

Re: break в С++

Сообщение gavrasio »

s.xbatob писал(а):
30.12.2015 16:08
Вот не вижу ни одного места, где объекту, на который указывает pB, присваивается 0. Зато вижу кучу обращений к уже удалённому объекту.

Примерно, вот здесь:

Код: Выделить всё

Если 0, выхожу из main, возвращаю -1
0

Здесь я присвоил pB ноль(вторая строчка кода).
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: break в С++

Сообщение Bizdelnick »

gavrasio писал(а):
30.12.2015 15:08
delete pB;
cout<<"\t*pB:\t"<<*pB<<endl<<"\tpB:\t"<<pB<<endl;

Так делать нельзя. Если Вы удалили объект, на который указывает указатель, поведение при разыменовании указателя не определено.

gavrasio писал(а):
30.12.2015 16:14
Здесь я присвоил pB ноль(вторая строчка кода).

Затем Вы удалили *pB, создали новый, присвоили ему 28 и только потом выполнили проверку на равенство 0. Разумеется, нулю он не равен, он равен 28.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
gavrasio
Сообщения: 109
ОС: Mageia 4

Re: break в С++

Сообщение gavrasio »

Bizdelnick писал(а):
30.12.2015 17:55
gavrasio писал(а):
30.12.2015 15:08
delete pB;
cout<<"\t*pB:\t"<<*pB<<endl<<"\tpB:\t"<<pB<<endl;

Так делать нельзя. Если Вы удалили объект, на который указывает указатель, поведение при разыменовании указателя не определено.


Дайте код, как надо. Я Вас пойму.
Спасибо сказали:
Аватара пользователя
devilr
Сообщения: 3665
ОС: Mandriva => Gentoo (~amd64)
Контактная информация:

Re: break в С++

Сообщение devilr »

А что ТС вообще хочет?
Вариант, типа

Код: Выделить всё

#include <stdio.h>

#define bool    char
#define true    1
#define false    0

bool xxx(int a, int *b)
{
  if(a == 5) return false;
  // что-то делаем правильное
  *b = a * 5;
  return true;
}

int main(void)
{
  bool x = false;
  int temp = 0;
  int a = 0;

  for(int a = 0; a<10; a++)
  {
    x = xxx(a, &temp);
    if(x)
    {
      printf("temp = %d\n", temp);
    }
    else
    {
      printf("a %d is illegal value\n", a);
    }
  }

  return 0;
}

совсем плохой, да? И все таки лучше почитать какой-нибудь учебник.
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Эхо разума
Спасибо сказали:
gavrasio
Сообщения: 109
ОС: Mageia 4

Re: break в С++

Сообщение gavrasio »

Bizdelnick писал(а):
30.12.2015 17:55
gavrasio писал(а):
30.12.2015 15:08
delete pB;
cout<<"\t*pB:\t"<<*pB<<endl<<"\tpB:\t"<<pB<<endl;

Так делать нельзя. Если Вы удалили объект, на который указывает указатель, поведение при разыменовании указателя не определено.
.

Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: break в С++

Сообщение Bizdelnick »

gavrasio писал(а):
30.12.2015 19:03
Дайте код, как надо.

Надо, чтобы все обращения к *pB были до

Код: Выделить всё

delete pB;
Разыменовывать указатель на освобождённую память нельзя. Это может привести к трудноуловимым ошибкам, падению программы и/или появлению уязвимости. Короче, к чему угодно. Это и называется «поведение не определено».

gavrasio писал(а):
30.12.2015 19:03
Я Вас пойму.
Очень на это надеюсь, хотя пока в этом плане успехи были не очень.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
gavrasio
Сообщения: 109
ОС: Mageia 4

Re: break в С++

Сообщение gavrasio »

Bizdelnick писал(а):
30.12.2015 17:55
gavrasio писал(а):
30.12.2015 15:08
delete pB;
cout<<"\t*pB:\t"<<*pB<<endl<<"\tpB:\t"<<pB<<endl;

Так делать нельзя. Если Вы удалили объект, на который указывает указатель, поведение при разыменовании указателя не определено.



Наверное, надо так:

Код: Выделить всё

delete pB=0;

Спасибо сказали:
gavrasio
Сообщения: 109
ОС: Mageia 4

Re: break в С++

Сообщение gavrasio »

devilr писал(а):
30.12.2015 19:23
А что ТС вообще хочет?
Вариант, типа

Код: Выделить всё

#include <stdio.h>

#define bool    char
#define true    1
#define false    0

bool xxx(int a, int *b)
{
  if(a == 5) return false;
  // что-то делаем правильное
  *b = a * 5;
  return true;
}

int main(void)
{
  bool x = false;
  int temp = 0;
  int a = 0;

  for(int a = 0; a<10; a++)
  {
    x = xxx(a, &temp);
    if(x)
    {
      printf("temp = %d\n", temp);
    }
    else
    {
      printf("a %d is illegal value\n", a);
    }
  }

  return 0;
}

совсем плохой, да? И все таки лучше почитать какой-нибудь учебник.

Ваш код работает нормально, мне он совсем не плохой. Какой-нибудь учебник я всё-таки читаю, иначе, не общался здесь с Вами. В этом плохом учебнике написано, что надо уходить от операторов типа printf, хотя это никто и не запрещает( как и go to).
Спасибо сказали:
Аватара пользователя
devilr
Сообщения: 3665
ОС: Mandriva => Gentoo (~amd64)
Контактная информация:

Re: break в С++

Сообщение devilr »

Я просто написал код для языка С. Мне показалось, что так проще объяснить, как написать функцию, которая будет возращать "истину" если она все сделала правильно и "ложь", если есть проблемы. И могла бы использовать любые диапазоны входных значений, без оглядки на "ноль использовать в возврате нельзя, так как он используется, а отрицательные значения можно, так как я их не использую". А через полгода, забыв об этом, вы подаете на вход -5, получаете на выходе (например) -25 и думаете, что это ошибка, хотя функция отработала вполне корректно.
Printf здесь только для вывода информации на экран. В C++ были бы вcякие перенаправления в потоки ввода-вывода, типа "<<"
P.S. printf, например, широко используется в программировании для микроконтроллеров (я, например, его использую по работу чуть ли не ежедневно - для отладки). Как и goto, если не планируется оптимизация и код получается нагляднее. Все хорошо в меру. "Все есть яд и все есть лекарство - все зависит от дозы"
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Эхо разума
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: break в С++

Сообщение Bizdelnick »

gavrasio писал(а):
31.12.2015 13:55
Наверное, надо так:

Код: Выделить всё

delete pB=0;

Навскидку точно приоритет операторов не помню, но вроде бы у = он выше, чем у delete. Если так, то Вы таким образом память не освободите, и вовсе в сегфолт свалитесь. Впрочем, независимо от приоритета для улучшения читаемости кода такие вещи надо записывать с разбиением по операциям:

Код: Выделить всё

delete pB;
pB = NULL;
Что такой код корректен видно, даже если насчёт приоритета есть сомнения. NULL (или nullptr в C++11) лучше использовать, чем 0, опять-таки для улучшения читаемости.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
gavrasio
Сообщения: 109
ОС: Mageia 4

Re: break в С++

Сообщение gavrasio »

devilr писал(а):
31.12.2015 14:13
Я просто написал код для языка С. Мне показалось, что так проще объяснить, как написать функцию, которая будет возращать "истину" если она все сделала правильно и "ложь", если есть проблемы. И могла бы использовать любые диапазоны входных значений, без оглядки на "ноль использовать в возврате нельзя, так как он используется, а отрицательные значения можно, так как я их не использую". А через полгода, забыв об этом, вы подаете на вход -5, получаете на выходе (например) -25 и думаете, что это ошибка, хотя функция отработала вполне корректно.
Printf здесь только для вывода информации на экран. В C++ были бы вcякие перенаправления в потоки ввода-вывода, типа "<<"
P.S. printf, например, широко используется в программировании для микроконтроллеров (я, например, его использую по работу чуть ли не ежедневно - для отладки). Как и goto, если не планируется оптимизация и код получается нагляднее. Все хорошо в меру. "Все есть яд и все есть лекарство - все зависит от дозы"

Интересно получилось! Я эту тему поднял, что бы как раз разобраться с программированием для микроконтроллеров. На специализированных форумах по МК тонкости С++ не обсуждаются, там, если написано &(abc) - то это фундаментальное понятие языка С++, должно работать. С МК, вообще говоря, можно работать по шаблонам, есть куча готовых библиотек. Но иногда хочется разобраться, что же ты там пишешь.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: break в С++

Сообщение Bizdelnick »

gavrasio писал(а):
31.12.2015 14:03
В этом плохом учебнике написано, что надо уходить от операторов типа printf, хотя это никто и не запрещает( как и go to).

Немножко не так. Функции форматированного вывода C в ряде случаев более удобны, чем возня с потоками ввода/вывода C++, где можно нагородить ошибок. Так что стоит ли от них уходить — вопрос спорный, хотя и тем, и другим пользоваться надо умеючи. Ну а про goto я выше уже писал, в этом плане отличий между C и C++ нет.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
gavrasio
Сообщения: 109
ОС: Mageia 4

Re: break в С++

Сообщение gavrasio »

Bizdelnick писал(а):
31.12.2015 14:58
gavrasio писал(а):
31.12.2015 14:03
В этом плохом учебнике написано, что надо уходить от операторов типа printf, хотя это никто и не запрещает( как и go to).

Немножко не так. Функции форматированного вывода C в ряде случаев более удобны, чем возня с потоками ввода/вывода C++, где можно нагородить ошибок. Так что стоит ли от них уходить — вопрос спорный, хотя и тем, и другим пользоваться надо умеючи. Ну а про goto я выше уже писал, в этом плане отличий между C и C++ нет.

Согласен. С printf работать намного комфортней, чем с перегруженным "<<". Но большинство всё-таки используют его. Насчёт go to. Интересно, компилятор использует это движение при компиляции?
Спасибо сказали:
gavrasio
Сообщения: 109
ОС: Mageia 4

Re: break в С++

Сообщение gavrasio »

Bizdelnick писал(а):
31.12.2015 14:45
gavrasio писал(а):
31.12.2015 13:55
Наверное, надо так:

Код: Выделить всё

delete pB=0;

Навскидку точно приоритет операторов не помню, но вроде бы у = он выше, чем у delete. Если так, то Вы таким образом память не освободите, и вовсе в сегфолт свалитесь. Впрочем, независимо от приоритета для улучшения читаемости кода такие вещи надо записывать с разбиением по операциям:

Код: Выделить всё

delete pB;
pB = NULL;
Что такой код корректен видно, даже если насчёт приоритета есть сомнения. NULL (или nullptr в C++11) лучше использовать, чем 0, опять-таки для улучшения читаемости.

Вы правы, - так, как я написал, компилятор не принимает. Ваш вариант берёт. Запомним!
Спасибо сказали:
Аватара пользователя
devilr
Сообщения: 3665
ОС: Mandriva => Gentoo (~amd64)
Контактная информация:

Re: break в С++

Сообщение devilr »

goto используется вполне. Допустим, switch - это замаскированный goto. Просто переход по условию по адресу. Кстати, именно из-за этого в switch используются только целочисленные значения переменных - адрес не может быть дробным и уж тем более не может быть строкой.
На специализированных форумах по МК тонкости использования C++ не обсуждаются потому, что на C++ на микроконтроллерах практически не пишут. Сликом дорого в плане затрат по коду и быстродействию. Тема холиварная и лучше не начинать. Все придет с опытом. Ну, либо придут контроллеры с дикой памятью и быстродействием (и низкой ценой конечно) и на C++ вполне можно будет комфортно писать.
"Интересно, компилятор использует это движение при компиляции?" - вопрос не понятен.
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Эхо разума
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: break в С++

Сообщение Bizdelnick »

devilr писал(а):
31.12.2015 16:09
либо придут контроллеры с дикой памятью и быстродействием (и низкой ценой конечно) и на C++ вполне можно будет комфортно писать.

Давно уже пришли. Даже самые хилые ардуинки программируются на C++ (хотя и без стандартной библиотеки). Чего уж там говорить про всякие Cortex M и STM32.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
devilr
Сообщения: 3665
ОС: Mandriva => Gentoo (~amd64)
Контактная информация:

Re: break в С++

Сообщение devilr »

Значит я отстал от жизни. У нас тут до сих пор всякие 51 серии и пикушки. Хотя разговор в теме не об этом.
P.S. Да и вообще, пора наливать! С Новым Годом! :)
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Эхо разума
Спасибо сказали:
gavrasio
Сообщения: 109
ОС: Mageia 4

Re: break в С++

Сообщение gavrasio »

Bizdelnick писал(а):
31.12.2015 22:02
devilr писал(а):
31.12.2015 16:09
либо придут контроллеры с дикой памятью и быстродействием (и низкой ценой конечно) и на C++ вполне можно будет комфортно писать.

Давно уже пришли. Даже самые хилые ардуинки программируются на C++ (хотя и без стандартной библиотеки). Чего уж там говорить про всякие Cortex M и STM32.

Не хотел на эту тему говорить. Но, если Вы это затронули, я скажу. Давно уже в программировании МК про железо никто не вспоминает, - объём памяти, быстродействие, - это уже есть в избытке. А вот мозги и время программиста, - это есть сейчас вопрос основной. Потому я здесь и задаю вопросы.
Спасибо сказали:
Аватара пользователя
devilr
Сообщения: 3665
ОС: Mandriva => Gentoo (~amd64)
Контактная информация:

Re: break в С++

Сообщение devilr »

В некоторых отраслях до сих пор используются всякие микросхемы памяти РФ2 и контроллеры, вообще не имеющие своей памяти программ. И на ассемблере народ тоже пишет. Практически за еду. Но это совсем не тема этой ветки.
С break удалось разобраться?
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Эхо разума
Спасибо сказали:
gavrasio
Сообщения: 109
ОС: Mageia 4

Re: break в С++

Сообщение gavrasio »

devilr писал(а):
31.12.2015 22:34
В некоторых отраслях до сих пор используются всякие микросхемы памяти РФ2 и контроллеры, вообще не имеющие своей памяти программ. И на ассемблере народ тоже пишет. Практически за еду. Но это совсем не тема этой ветки.
С break удалось разобраться?

Да, очень много полезногоя почерпнул отсюда. Многие программисты, которые сидят на avr-g++, думают, что это и есть основа. А основа - это C++. И здесь надо искать многие ответы.
Спасибо сказали:
Аватара пользователя
devilr
Сообщения: 3665
ОС: Mandriva => Gentoo (~amd64)
Контактная информация:

Re: break в С++

Сообщение devilr »

Ага. Сначала ты чуток изучаешь какой-нибудь из простых ЯП. Пишешь на нем простую программу и думаешь, что знаешь все обо всем.
А через 30 лет практики ты знаешь уже 10+ ЯП и точно знаешь, что нифига не знаешь. Классика. :)
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Эхо разума
Спасибо сказали:
Ответить