На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела:
1. Название темы - краткое описание кто/что против кого/чего
2. В первом сообщении - список параметров, по которым идет сравнение.
3. Старайтесь аргументировать свои высказывания. Фразы типа "Венда/Слюникс - ацтой" считаются флудом.
4. Давайте жить дружно и не доводить обсуждение до маразма и личных оскорблений.
Модераторы: Модераторы, Комодераторы
Страницы: (245) « Первая ... 234 235 [236] 237 238 ...  244 245  ( Перейти к последнему сообщению )  
> Есть ли будущее у DELPHI?
    amk, он вообще не собирается:
    ExpandedWrap disabled
      myaut@panther:/tmp> gcc inti.c
      inti.c: In function ‘main’:
      inti.c:7:12: error: invalid type argument of unary ‘*’ (have ‘int’)


    Если добавить каст к int** переменной i и собрать с параноидальными ключами gcc, то все же ругается:
    ExpandedWrap disabled
      myaut@panther:/tmp> gcc -Wall -pedantic -m32 inti.c                                                                                                                                          
      inti.c:5:5: warning: return type defaults to ‘int’ [-Wreturn-type]                                                                                                                            
      inti.c: In function ‘main’:                                                                                                                                                                  
      inti.c:8:5: warning: control reaches end of non-void function [-Wreturn-type]                                                                                                                
      inti.c:7:14: warning: ‘i’ is used uninitialized in this function [-Wuninitialized]
      Компилятор поставлю, разберусь. Кучу ошибок и на глаз обнаружил: в incr надо не ++n; писать, а ++*n;
      main надо объявить как положено int main(), incr вызывать как incr(*i); и добавить в конец return 0;

      Добавлено
      ExpandedWrap disabled
        void incr(int *n) {
          ++*n;
        }
         
        int main() {
          int i;
          incr(&i);
          return 0;
        }
      Сообщение отредактировано: amk -
        return 0 для main не обязателен.

        Добавлено
        amk, а что ты примером этим показать хотел?
          Что не всегда использование неинициированной переменной компилятор может отследить. и то, что компилятор ни о чём не сообщил, ещё не значит что в программе ошибок нет. Про логику и не говорю.

          Цитата D_KEY @
          return 0 для main не обязателен.
          В чистом C обязателен. И вообще лучше не забывать, что return из main формирует код завершения программы.
            Блин, когда я вижу такое: https://plus.google.com/1150573667707376591...sts/bevdbCbczmQ я задаюсь сабжем... By design!!!!!!!!!!!!!!!!!!
              Это ты сейчас об эксепшне из деструктора, бизнес-логике в нём или наплевательством отношении к инварианту класса?
                АРГХ! Снова по работе пришлось столкнуться с этой архаичной фигней. Ну почему во всех (или почти всех) нормальных языках можно явно выбрать, будет ли переменная-счетчик для for внешней или внутренней, а в Делфях она как бы объявлена внешне, но после цикла нельзя использовать ее (последнее) значение, т.к. оно, видите ли, может быть неопредленным?
                  Цитата korvin @
                  будет ли переменная-счетчик для for внешней или внутренней

                  а как её можно сделать внутренней в современных языках? насколько я помню в js и в плюсах, даже если переменная объявлена внутри фора - она всё равно доступна после цикла... или я путаю? :rolleyes:
                    Цитата Serafim @
                    насколько я помню в js и в плюсах, даже если переменная объявлена внутри фора - она всё равно доступна после цикла... или я путаю?

                    Да. Не надо путать православные кресты с недоскриптом.
                      я точно помню, что в каком-то компиле было такое :tong:
                      кастую Крайзера, он точно скажет в каком =)

                      Добавлено
                      Вроде в студии :unsure:
                        Так мы говорим о C++ или о его поддержке в глючном VC++ 6? :-?
                          Цитата Serafim @
                          Вроде в студии

                          В VS6 была проблема, да и есть сейчас, если им ктото пользуется, что если ты определил переменную в выражении цикла for например:
                          ExpandedWrap disabled
                            for(int counter = 0; counter < 10; ++counter)
                            {
                            //  blablabla
                            }
                            ...
                            //! Тут какой то код
                            ...
                            for(int counter = 0; counter < 10; ++counter)
                            {
                            //  blablabla
                            }

                          То вот в таком коде, во втором цикле будет ругаца, что переменая counter уже определена выше. Если ты конечно это имел ввиду...

                          Добавлено
                          Но VS6 она древняя если чего, и даже не поддерживает 2003 года стандарт. Я хз это в студии такой баг или в стандарте. И вроде бы этот "баг" можно даже отключить какой то настройкой в VS6...Я щас не припомню точно.
                          Сообщение отредактировано: Wound -
                            Цитата Wound @
                            В VS6 была проблема

                            гг вп, я победил :tong: :D

                            Добавлено
                            Цитата Wound @
                            Но VS6 она древняя если чего

                            зато не дотнет =)
                              В делфях же, ЕМНИП, могу ошибаться, все переменные(включая те, что используются в цикле), должны быть объявлены в блоке var, который идет перед секцией begin в начале procedure/function, но вроде бы, я опять же не помню, давно писал на делфыях и паскале, можно делать вложеные процедуры или что то типо того, со своей секцией var/begin-end. Могу ошибаться.

                              Добавлено
                              Цитата Serafim @
                              гг вп, я победил

                              Кого? Этот баг легко фиксится, достаточно объявить counter до блока for, и дальше его юзать везде, уже не объявляя, а только зануляя. Просто у делфи и С/С++ подход немного разный. В делфи/паскале - все переменные/константы объявляются в блоке var в начале процедуры или функции, а в С/С++ где хочешь - там и объявляй.
                              Сообщение отредактировано: Wound -
                                Цитата Serafim @
                                гг вп, я победил

                                :fool:
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (245) « Первая ... 234 235 [236] 237 238 ...  244 245


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,1971 ]   [ 15 queries used ]   [ Generated: 18.07.25, 21:16 GMT ]