LINUX.ORG.RU

Разработка на C/C++ в Eclipse IDE

 ,


0

0

Перевод статьи про разработку приложений на C/C++ в Eclipse. Прежде всего, статья будет полезна людям начинающего уровня. В ней рассмотрен интерфейс IDE, базовые команды при разработке на C/C++, написание простого консольного приложения и написание небольшого GTK+-приложения.

>>> Перевод



Проверено: Shaman007 ()
Ответ на: комментарий от jtootf

>ну и кому на собеседовании нужна проверка знания тёмных углов стандарта? jtootf (*) (01.10.2008 16:07:15)

Индусам не надо точно. Тут народ, на ЛОРе, "блещет" полным незнанием приоритетов операторов, а ты говоришь о темных углах стандарта.

anonymous
()
Ответ на: комментарий от sv75

> Правда, это тоже глупость --- на мехмате должны должны начинать с хаскеля, язык Си математикам не понятен совершено.

Ну ты взгазировал, приятель )))) Не обобщай возможности своей понималки на весь мехмат. И прочитай, чтоли, книжку-другую по дискре.

anonymous
()
Ответ на: комментарий от anonymous

>Тут народ, на ЛОРе, "блещет" полным незнанием приоритетов операторов, а ты говоришь о темных углах стандарта

приоритет - умение решать поставленные задачи. делать упор на специфических подводных камнях - бессмысленная трата времени на собеседовании

jtootf ★★★★★
()
Ответ на: комментарий от cap838383

>Если познаешь сможешь программистов С++ силой мысли убивать..

тёмная сторона силы - это CL. made with alien technology (c)

jtootf ★★★★★
()
Ответ на: удаленный комментарий

>Например, в NetBeans автодополнения для XML нет. iZEN (*) (01.10.2008 16:28:20)

О-о, мусье знает толк в извращениях, ХыМыЛы вручную перепахивать - это даже судо&мано переплюнет по величине экстаза от процесса.

anonymous
()
Ответ на: комментарий от anonymous

>> В NetBeans редактор хуже, чем в Eclipse.
> Чем?


Тем, что для XML не поддерживает автоформатирование набираемых строк и долго ищет "code complete" для тэгов. Ужасно бесит — приходится вручную нажимать Alt+Shift+F.

iZEN ★★★★★
()
Ответ на: комментарий от anonymous

>Тут народ, на ЛОРе, "блещет" полным незнанием приоритетов операторов, а ты говоришь о темных углах стандарта.

Приоритеты операторов — лишняя сущность.

anonymous
()
Ответ на: комментарий от cap838383

>>int x = 1; x = x++; 

>>Чему в результате равен x? 

>> x=1. Постфиксный инкремент возвращает старое значение переменной по значению. 

>А если компилятором Микрософта из VS 2008 скомпилить то x=2 :)

Ха-ха! Вы будете смеяться, но все компиляторы выдают разные значения:

Borland C 3.1     2
TopSpeed C 3.10   1
Borland C 5.6     2
Tiny C 0.9.24     1
Open Watcom C 1.7 1
GCC 2.95.3        2
GCC 3.4.2         1
GCC 3.4.4         1
Pelles C 5.00     1
lcc-win32 3.8     1
Keil C 7.01       2
armcc 3.1.0.903   2

anonymous
()
Ответ на: комментарий от anonymous

>>Например, в NetBeans автодополнения для XML нет. iZEN (*) (01.10.2008 16:28:20)

>О-о, мусье знает толк в извращениях, ХыМыЛы вручную перепахивать - это даже судо&мано переплюнет по величине экстаза от процесса.


Всё-таки автодополнение для XML есть, но очень долго ищет. Кажись в Интернет лезет за каждой схемой для XML. В Eclipse схемы xsd встроены в качестве плагина, так что здесь всё моментально происходит.

iZEN ★★★★★
()
Ответ на: комментарий от anonymous

>Ха-ха! Вы будете смеяться, но все компиляторы выдают разные значения:

Уже обговорили выше: я упустил из виду, что для встроенных операторов там нет точки следования.

Sectoid ★★★★★
()
Ответ на: комментарий от jtootf

>>Тут народ, на ЛОРе, "блещет" полным незнанием приоритетов операторов, а ты говоришь о темных углах стандарта

>приоритет - умение решать поставленные задачи. делать упор на специфических подводных камнях - бессмысленная трата времени на собеседовании jtootf (*) (01.10.2008 16:32:03)

Ты меня не понял, я имел в виду персонажей, которые не в состоянии решить элементарную задачку типа приведеной выше по топику, то доверить ему что-то сложнее "Хеллоуволда" я бы не решился.

anonymous
()
Ответ на: комментарий от A-234

>>Пример был взят кстати из реального кода.

Реален любой код. Автор кода x=1;x=x++ не в ладах с си ибо инкремент в данном случае не требует присваивания. Жаба, кстати, тоже не сможет защитить ваш проект от дилетантов.

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

>>Если переменная изменяется в одном выражении более одного раза, ее конечное значение не определено

Вот тут действительно по стандарту х.з. ибо порядок обработки операндов не определен:

int x=1; printf(" %d %d",x++,x);

anonymous
()
Ответ на: комментарий от anonymous

> Ха-ха! Вы будете смеяться, но все компиляторы выдают разные значения:

Еще бы, за такой код надо руки отрывать. Чего вообще хотел добиться кодер, когда писал?

anonymous
()
Ответ на: комментарий от anonymous

> БыдлоIDE - спасительное средство в случае, если контора решила сэкономить на качестве кода.

А что если отличнейший программист пишет красивый и правильный код, использую Eclipse? Что тогда?

Парадокс? Коллапс вселенной? Взрыв мозга анонима?

katafeyki
()
Ответ на: комментарий от clumsy

> юзайте code:blocks

Еще одно красиво оформленное УГ.

anonymous
()
Ответ на: комментарий от katafeyki

>>> А что если отличнейший программист пишет красивый и правильный код, используЮ Eclipse?

Самореклама ?

cap838383
()
Ответ на: комментарий от iZEN

> Всё-таки автодополнение для XML есть, но очень долго ищет.

А то что многие функции нетбинса в эклипсе коряво реализованы ничего? Например форматирование кода, которое в эклипсе вообще неюзабельное (Алт-Шифт-Ф которое), или нет нормального плагина для mercurial (я не знаю что курили его авторы, но я его не осилил), или отсутствие нормального клиента SQL? Я уже не говорю о гуи-редакторе и пр....

anonymous
()
Ответ на: комментарий от anonymous

Русским языком же сказали: НЕОПРЕДЕЛЕННОСТЬ!

anonymous
()
Ответ на: комментарий от anonymous

> нет нормального плагина для mercurial (я не знаю что курили его авторы, но я его не осилил)

Какую версию ты смотрел и когда? Он довольно быстро развивается.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

> Какую версию ты смотрел и когда? Он довольно быстро развивается.

Смотрел 3.4 эклипс и плагин скачанный вчера (решил глянуть что наваяла конкурирующая фирма (ц) :)), как с ним работать вообще не понял.

anonymous
()
Ответ на: комментарий от anonymous

>Ха-ха! Вы будете смеяться, но все компиляторы выдают разные значения:

Да уж. И на этом быдлоязыке пишут программы. Я в трансе. ведь по сути это

>>int x = 1; x = x++;

эквивалентно вот этому: int x = 1; x = (x++);

стандарт четко ставит приоритет ++ выше =, но даже, если бы приоритеты были бы равны, все равно должно получаться 2 => (x = x)++;

>GCC 2.95.3 2

>GCC 3.4.2 1

>GCC 3.4.4 1

Теперь понятно, почему разработчики ядра очень долго не хотели слезать с GCC 2.95

anonymous
()
Ответ на: комментарий от anonymous

Re^2: Разработка на C/C++ в Eclipse IDE

> Их нужно помнить.

ыыы. А алфавит тоже помнить надо. И таблицу умножения. Хотя идеально сферический лоронимус их не помнит.

gaa ★★
()
Ответ на: комментарий от anonymous

>Какой смысл заморачиваться приоритетами, если есть формы записи, их не требующие?

страшная догадка родилась в моём сознании. уж не о скобках ли речь? :)

jtootf ★★★★★
()
Ответ на: комментарий от anonymous

>В Хаскеле сделано неплохо: хошь так, хошь эдак

ну, в хаскеле вообще порядок выполнения и сайд-эффекты контролируются вручную, на то он и хаскель :)

jtootf ★★★★★
()
Ответ на: комментарий от anonymous

> Да уж. И на этом быдлоязыке пишут программы. Я в трансе. ведь по сути это

У тебя каша в голове, и, на фоне гипертрофированной самоуверенности, всё вокруг тебе кажется быдлом.

> стандарт четко ставит приоритет ++ выше =, но даже, если бы приоритеты были бы равны, все равно должно получаться 2 => (x = x)++;

Ты действительно считаешь, что знаешь Стандарт лучше разработчиков компиляторов? Ты его прочитал хотя бы раз от корки до корки? Кретин...

Давай я ткну тебя носом:

6.5 Expressions

Between the previous and next sequence point an object shall have its stored value modified at most once by the evaluation of an expression. Furthermore, the prior value shall be read only to determine the value to be stored.

This paragraph renders undefined statement expressions such as i = ++i + 1; a[i++] = i;

while allowing i = i + 1; a[i] = i;

anonymous
()
Ответ на: комментарий от jtootf

Eclipse+CTD мне в целом не особо нравится - слишком тяжёл, но к сожалению не знаю других свободных IDE, где так легко можно работать с большими проектами. Особенно полезны функции следования к декларации F3, иерархия вызова ctl+alt+h и конечно показ декларации при наводе курсора.

vim беру если надо что-то быстро сделать.

anonymous
()
Ответ на: комментарий от anonymous

>Вот тут действительно по стандарту х.з. ибо порядок обработки операндов не определен:

>int x=1; printf(" %d %d",x++,x);

>anonymous (*) (01.10.2008 16:46:02)

Кто сказал? Здесь все должно быть четко: " 2 1". printf() - функция, аргументы передаются через стэк по значению.

А вот:

int x=1; printf(" %d %d",&x++,&x);

выведет " 2 2".

Учите матчасть, юноша.

anonymous
()

В современном CDT очень приятная вещь - рефакторинг. Он понимает области видимости. Например, при переименовании члена "int myvar" класса MyClass он не тронет локальные переменные "int myvar", и не тронет члены других классов с таким же именем "myvar"; но подправит все упоминания MyClass::myvar (в том числе и те, где MyClass в явном виде не упоминается). Когда нужно что-то переименовать, экономит кучу времени и сил.

anonymous
()
Ответ на: комментарий от anonymous

> Учите матчасть, юноша. Чья бы корова мычала...

anonymous
()
Ответ на: комментарий от anonymous

>Учите матчасть, юноша.

Чья бы корова мычала.

anonymous
()
Ответ на: комментарий от anonymous

> int x=1; printf(" %d %d",&x++,&x);

Вот ЭТО, юноша, не то что ничего не выдаст - оно даже не скомпилируется. Прежде, чем советовать другим учить матчасть, не мешало бы знать ее самому.

anonymous
()
Ответ на: комментарий от anonymous

>Ты действительно считаешь, что знаешь Стандарт лучше разработчиков компиляторов? Ты его прочитал хотя бы раз от корки до корки? Кретин...anonymous (*) (01.10.2008 17:19:24)

Кретин это ты, видимо, потому что прочитал стандарт от корки до корки.

>Давай я ткну тебя носом:

почему gcc 2.95 выдает 2, а gcc 3.4 выдает 1, о мудрейший?

Предлагал же я отнести медаль санитарам, вот результат - одного вольтанутого уже выпустили.

anonymous
()
Ответ на: комментарий от anonymous

> Вот ЭТО, юноша, не то что ничего не выдаст - оно даже не скомпилируется. Прежде, чем советовать другим учить матчасть, не мешало бы знать ее самому.

От такие учителя...

cap838383
()
Ответ на: комментарий от cap838383

>А вот компилятор от Микрософта из VS 2008 выдаст 1 2

ну это же оффтопик, там на что угодно пойдут ради повышения прибылей :)

jtootf ★★★★★
()
Ответ на: комментарий от anonymous

> printf() - функция, аргументы передаются через стэк по значению.

А вот и пришибленные архитектурой x86 подтягиваются.

anonymous
()
Ответ на: комментарий от anonymous

> почему gcc 2.95 выдает 2, а gcc 3.4 выдает 1, о мудрейший?

Потому, что результат не определен. И об этом в явном виде сказано в стандарте. Фантазии твоего перевозбужденного разума на тему того, как должен работать твой код, не соответствуют действительности.

anonymous
()
Ответ на: комментарий от anonymous

Ну наконец-то вспомнили про букву стандарта!

anonymous
()
Ответ на: комментарий от anonymous

> Кретин это ты, видимо, потому что прочитал стандарт от корки до корки.

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

>>Давай я ткну тебя носом:

> почему gcc 2.95 выдает 2, а gcc 3.4 выдает 1, о мудрейший?

Ты действительно такой или притворяешься? Тебе указали на то, что в стандарте результат данного выражения не определён, что ты и продемонстрировал на примере разных версиях компилятора.

anonymous
()
Ответ на: комментарий от anonymous

> Ну да. Жабо это круто. Там за тобой даже дерьмище подчищают, автоматически. А то что оно тормознее и прожорливее - не беда. Процы и память дешевые, к тому же платить за это буду не я, а те кто у меня купил мою поделку. Да и что мне с того, что юзверь тупо ждет реакции несколько лишних секунд? Платить ведь за потери буду не я, а его, юзверя, работодатель. А вот мои трудозатраты - это же совсем другое дело!

Да, жабо - это круто.

Стэфан Краузе в своём блоге http://www.stefankrause.net опубликовал новые тесты производительности кода, написанного на C и на Java.

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

http://www.linux.org.ru/jump-message.jsp?msgid=2903217&cid=2903412

xintrea
()
Ответ на: комментарий от cap838383

>А вот компилятор от Микрософта из VS 2008 выдаст 1 2 cap838383 (*) (01.10.2008 17:35:29)

Согласен. А вот это: int x=1; printf(" %d %d", &x, &x++);?

anonymous
()
Ответ на: Re^2: Разработка на C/C++ в Eclipse IDE от gaa

> Не пофиг. Представь, что /bin/echo будет запускаться 0.5 секунды и пррочувствуй разницу.

Echo на Java будет работать не медленнее с точки зрения пользователя - он просто не заметит разницы.

DOKA
()
Ответ на: комментарий от xintrea

>Но сан сделал фантастику реальностью

пусть ещё тезис Чёрча-Тьюринга преодолеют. вот тогда и я с респектами подтянусь

jtootf ★★★★★
()
Ответ на: комментарий от anonymous

>Кто сказал? Здесь все должно быть четко: " 2 1". printf() - функция, >аргументы передаются через стэк по значению.
>

>А вот:

>

>int x=1; printf(" %d %d",&x++,&x);

>

>выведет " 2 2".

>

Отлучить от C, пока не выучит главу 6.5 стандарта.

>Учите матчасть, юноша.

За наглость высечь.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.