Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

RE: Вопросы по C/C++ (Для новичков)

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Компилируемые языки] >> RE: Вопросы по C/C++ (Для новичков)
Имя
Сообщение << Старые топики   Новые топики >>
RE: Вопросы по C/C++ (Для новичков) - 2010-04-14 01:19:16.133333   
iidsp

Сообщений: 379
Оценки: 0
Присоединился: 2009-10-14 23:13:19.856666
quote:

сравнение чего с чем?

имел в виду сравнение работы самих контейнеров друг с другом на основе какой-либо задачи…
вот еще вот такую книжку видел http://www.ozon.ru/context/detail/id/1955136/
Post #: 1441
RE: Вопросы по C/C++ (Для новичков) - 2010-04-14 17:58:44.456666   
Denaturat

Сообщений: 1741
Оценки: 453
Присоединился: 2008-10-27 20:50:06.380000
quote:

ORIGINAL: iidsp

имел в виду сравнение работы самих контейнеров друг с другом на основе какой-либо задачи…


какой смысл сравнивать тёплое с мягким?
Post #: 1442
RE: Вопросы по C/C++ (Для новичков) - 2010-04-14 18:13:50.783333   
iidsp

Сообщений: 379
Оценки: 0
Присоединился: 2009-10-14 23:13:19.856666
quote:

какой смысл сравнивать тёплое с мягким?

ну мало ли, ради того что бы показать, что тот или иной контейнер будет жутко тормозным с определенным классом задач, а вот этот или этот, с ними справиться лучше!
Post #: 1443
RE: Вопросы по C/C++ (Для новичков) - 2010-04-14 18:34:32.340000   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
Выбирай контейнер в зависимости от решаемой задачи - и будет тебе счастье ;)
Post #: 1444
RE: Вопросы по C/C++ (Для новичков) - 2010-04-14 19:07:13.916666   
iidsp

Сообщений: 379
Оценки: 0
Присоединился: 2009-10-14 23:13:19.856666
Возможно, довольно фривольный вопрос задам, но
что на данный момент следует учить дополнительно С++ программисту, что быть востребованным на рынке. какие технологии помимо знания самого языка!
если можно, то последовательность изучения этих технологий для меня тоже имеет существенную роль, да бы не выпучить глаза и не кидаться с одного на другое.
можете, если не секрет, привести пример с вашего места работы.
Спасибо.
Post #: 1445
RE: Вопросы по C/C++ (Для новичков) - 2010-04-14 19:13:31.013333   
Stil Free 2

Сообщений: 183
Оценки: 0
Присоединился: 2009-03-26 17:17:38.296666

quote:

ORIGINAL: iidsp

Возможно, довольно фривольный вопрос задам, но
что на данный момент следует учить дополнительно С++ программисту, что быть востребованным на рынке. какие технологии помимо знания самого языка!
если можно, то последовательность изучения этих технологий для меня тоже имеет существенную роль, да бы не выпучить глаза и не кидаться с одного на другое.
можете, если не секрет, привести пример с вашего места работы.
Спасибо.

Спросил ты у большой банды школяров которые востребованы на рынке=) Учи сокеты( и соответсвенно работу с протоколами) это всегда было полезно, правильной работе с ОС это основное=)
Post #: 1446
RE: Вопросы по C/C++ (Для новичков) - 2010-04-14 19:35:12.143333   
iidsp

Сообщений: 379
Оценки: 0
Присоединился: 2009-10-14 23:13:19.856666
quote:


Спросил ты у большой банды школяров которые востребованы на рынке=)

япацтолом
вопрос был конечно же к rgo, _SaZ_, Denaturat ну и к тем. у кого есть что сказать… т.к. данная ветка форума совсем затихла, то я даже и не знаю у кого мне еще спрашивать тут…
Post #: 1447
RE: Вопросы по C/C++ (Для новичков) - 2010-04-14 19:43:12.276666   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
quote:

ORIGINAL: iidsp

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


Если цель быть прикладным программистом, то обязательно что-то для работы с базами данных: SQL / ORACLE, знать и уметь xml / xsd / xslt, знать основы низкоуровневой работы с сетью (сокеты, tcp / udp и пр.), сверху к ним уже обращения ко всяким веб-сервисам / wsdl / soap, знать хотя-бы пару инструментов для построения UI. Для windows программиста сверху знать COM, основы WinAPI, многопоточность, можно ATL / WTL поковырять (или сразу Qt). Обязательно обучится отладке. Не помешает научиться писать кодогенераторы, только главное - вовремя остановиться :).

Но если серьёзно, то главное - это уметь применить нужный инструмент в нужном месте. А уже освоить сам инструмент для программиста не должно составлять особого труда. Если быстро не получается - то значит такой программист / инструмент. Только в любом инструменте есть косяки, которые, возможно, придётся самому допиливать, как у нас в своё время было с gSOAP. Вот тут и пригодятся глубокие знания той или иной области.
Post #: 1448
RE: Вопросы по C/C++ (Для новичков) - 2010-04-14 23:24:36.460000   
iidsp

Сообщений: 379
Оценки: 0
Присоединился: 2009-10-14 23:13:19.856666
Увидел забавную программу на dumpz.org
под названием
quote:

Программа-полиморф hello world на 15 языках. Работает в C, C++, Haskell, Ruby, Python, Perl(x2), HTML, tcl, bash, zsh, make, bash и brainfuck. via http://govnokod.ru/1205


# /* [ &lt;!-- */ include &lt;stdio.h&gt; /* \ #{\ `""""true \\#{"\n#"}; \ \ if [ -n "$ZSH_VERSION" ]; then \ \ echo exec echo I\'m a zsh script.; \ \ elif [ -n "$BASH_VERSION" ]; then \ \ echo exec echo I\'m a bash script.; \ else \ echo exec echo I\'m a sh script.; \ fi`; #\ BEGIN{print"I'm a ", 0 ? "Ruby" :"Perl", " program.\n"; exit; } #\ %q~ set dummy =0; puts [list "I'm" "a" "tcl" "script."]; exit all: ; @echo "I'm a Makefile." \ #*/ /*: */ enum {a, b}; \ \ static int c99(void) { #ifndef __cplusplus /* bah */ unused1: if ((enum {b, a})0) \ (void)0; #endif unused2: return a; \ } \ static int trigraphs(void) { \ \ return sizeof "??!" == 2; \ } \ char X; \ \ int main(void) { \ \ struct X { \ \ char a[2]; \ };\ if (sizeof(X) != 1) { \ \ printf("I'm a C++ program (trigraphs %sabled).\n", \ \ trigraphs() ? "en" : "dis");\ \ }else if (1//**/2 )unused3 : { ; \ printf("I'm a C program (C%s, trigraphs %sabled).\n", \ c99() ? "89 with // comments" : "99", \ trigraphs() ? "en" : "dis"); \ } else { \ printf("I'm a C program (C89, trigraphs %sabled).\n", \ trigraphs() ? "en" : "dis"); \ } \ return 0; \ } /* # \ &gt; main :: IO () -- -- \ &gt; main = putStr "I'm a Literate Haskell program.\n" # \ ]&gt;++++++++[&lt;+++++++++&gt;-]&lt;+.&gt;&gt;++++[&lt;++++++++++&gt;-]&lt;-.[-]&gt;++++++++++ \ [&lt;+++++++++++&gt;-]&lt;-.&gt;&gt;++++[&lt;++++++++&gt;-]&lt;.&gt;&gt;++++++++++[&lt;++++++++++&gt; \ -]&lt;- - -.&lt;.&gt;+.-&gt;&gt;++++++++++[&lt;+++++++++++&gt;-]&lt;++++.&lt;.&gt;&gt;&gt;++++++++++[ \ &lt;++++++++++&gt;-]&lt;+++++.&lt;&lt;&lt;&lt;+.-&gt;&gt;&gt;&gt;- - -.&lt;+++.- - -&lt;++.- -&gt;&gt;&gt;&gt;&gt;+++++ \ +++++[&lt;+++++++++++&gt;-]&lt;- - -.&lt;&lt;&lt;&lt;&lt;.&lt;+++.&gt;&gt;&gt;.&lt;&lt;&lt;-.- -&gt;&gt;&gt;&gt;+.&lt;.&lt;.&lt;&lt;.&gt; \ ++++++++++++++.[-]++++++++++"""` # \ print "I'm a Python program."; """[-][--&gt;&lt;html&gt;&lt;head&gt; &lt;!--:--&gt;&lt;title&gt;I'm a HTML page&lt;/title&gt;&lt;/head&gt;&lt;body&gt; &lt;!--:--&gt;&lt;h1&gt;I'm a &lt;marquee&gt;&lt;blink&gt;horrible HTML&lt;/blink&gt;&lt;/marquee&gt; page&lt;/h1&gt; &lt;!--:--&gt;&lt;script language="Javascript"&gt; &lt;!--: # \ setTimeout( // \ function () { // \ document.body.innerHTML = "&lt;h1&gt;I'm a javascript-generated HTML page&lt;/h1&gt;"; // \ }, 10000); // \ //--&gt; &lt;/script&gt;&lt;!--: \ &lt;/body&gt;&lt;/html&gt;&lt;!-- } # \ say "I'm a Perl6 program", try { " ($?PUGS_VERSION)" } // "", "."; # """ # */ #define FOO ]--&gt;~
глаза сломал [sm=14.gif]
что это за  - \
Post #: 1449
RE: Вопросы по C/C++ (Для новичков) - 2010-04-14 23:54:48.620000   
Denaturat

Сообщений: 1741
Оценки: 453
Присоединился: 2008-10-27 20:50:06.380000
quote:

ORIGINAL: iidsp

ну мало ли


http://www.realcoding.net/articles/konteinery-posledovatelnosti.html
http://www.realcoding.net/articles/assotsiativnye-konteinery-associative-containers.html

задавай свои вопросы, %username%
Post #: 1450
RE: Вопросы по C/C++ (Для новичков) - 2010-04-15 00:21:19.590000   
Denaturat

Сообщений: 1741
Оценки: 453
Присоединился: 2008-10-27 20:50:06.380000
quote:

ORIGINAL: iidsp

что на данный момент следует учить дополнительно С++ программисту


архитектуру PC, представление данных на низком уровне, POSIX (достаточно принципов по Таненбауму), модель OSI, стек TCP/IP, распространённые открытые форматы данных (XML, ASN.1, JSON, etc), RPC (с общим представлением о распределённых объектах/компонентах)

основы теории информации (бинарные протоколы, помехоустойчивое кодирование), построение и анализ алгоритмов (основы асимптотического анализа и общее представление приложений/асимптотик для распространённых алгоритмов), теория структур данных (простые структуры, хеширование, сбалансированные деревья, общее представление о сложных структурах). поскольку C++ применяется в нише ресурсоёмких приложений, полезно некоторое представление о DSP, численных методах, техниках оптимизации (от фьюжена и разворачивания циклов до эффективного использования кешей). процедурную декомпозицию, ООП, основы мультипарадигменного проектирования

в обязательном порядке - знать как работает и уметь пользоваться тулчейном: компилятор, линкер, отладчик, профайлер, система сборки, система документирования, система статического анализа кода

имея такой набор знаний можно выбирать интересующую предметную область, и развиваться в соответствующем направлении (графика, звук, GUI, СУБД, etc). имей в виду - программист, который знает менее трёх различных языков программирования,- плохой программист; в случае C++ в качестве основного, имеет смысл дополнительно разобрать встраиваемый скриптовый язык (Lua, Tcl, Python, etc) и хотя бы один функциональный язык (Haskell, Scheme, OCaml, etc). знать, что входит в C++0x, и быть готовым на него перейти; иметь представление о наборе библиотек в Boost, уметь при случае их использовать

quote:

ORIGINAL: iidsp

можете, если не секрет, привести пример с вашего места работы.


не могу
Post #: 1451
RE: Вопросы по C/C++ (Для новичков) - 2010-04-15 00:39:05.666666   
iidsp

Сообщений: 379
Оценки: 0
Присоединился: 2009-10-14 23:13:19.856666
Спасибо за то, что откликнулись… я в шоке от такого количества технологий и направлений, которые нужно знать!!!
есть к чему стремиться! это титанический труд…
Post #: 1452
RE: Вопросы по C/C++ (Для новичков) - 2010-04-15 02:52:08.956666   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
quote:

ORIGINAL: iidsp

это титанический труд…

Всё относительно… и приходит с опытом. Естественно, не стоит браться за всё одновременно.

P.S. - http://www.rsdn.ru/forum/etude/3595862.flat.aspx
Post #: 1453
RE: Вопросы по C/C++ (Для новичков) - 2010-04-15 02:54:30.886666   
rgo

Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
quote:

ORIGINAL: iidsp
Спасибо за то, что откликнулись… я в шоке от такого количества технологий и направлений, которые нужно знать!!!
есть к чему стремиться! это титанический труд…

Разберись как работает STL и boost. А остальное приложится в процессе работы.
Post #: 1454
RE: Вопросы по C/C++ (Для новичков) - 2010-04-15 03:31:24.140000   
iidsp

Сообщений: 379
Оценки: 0
Присоединился: 2009-10-14 23:13:19.856666
quote:

P.S. - http://www.rsdn.ru/forum/etude/3595862.flat.aspx

[sm=em62.gif]
Post #: 1455
RE: Вопросы по C/C++ (Для новичков) - 2010-04-15 03:59:54.676666   
iidsp

Сообщений: 379
Оценки: 0
Присоединился: 2009-10-14 23:13:19.856666
http://eurl.ru/gameforC гляньте на игру для С++ программистов =)
Post #: 1456
RE: Вопросы по C/C++ (Для новичков) - 2010-04-15 15:57:47.740000   
Denaturat

Сообщений: 1741
Оценки: 453
Присоединился: 2008-10-27 20:50:06.380000
quote:

ORIGINAL: iidsp

это титанический труд


это полгода умеренно напряжённых занятий в свободное время, благо литература (да и персоналка для практики) нынче более чем доступны. ещё полезно на штангу записаться, а то от монитора совсем зелёным стать можно
Post #: 1457
RE: Вопросы по C/C++ (Для новичков) - 2010-04-15 16:07:17.286666   
iidsp

Сообщений: 379
Оценки: 0
Присоединился: 2009-10-14 23:13:19.856666
quote:

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


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

а вообще, я хотел вот что спросить, где можно искать какие-либо опенсорс проэкты, дабы научиться работать в команде. набраться опыта, а то на всяких приложиениях, типо прочитай из файла слово абракадабра и составь из него 15 новых слов в обратном порядке, отсортировав их по алфавиту - далеко не уедешь…
Post #: 1458
RE: Вопросы по C/C++ (Для новичков) - 2010-04-15 16:27:28.726666   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
Самый простой способ определить фэйк или нет - сходить на собеседование + попробовать что-то написать. Для этого не надо под рукой иметь наставника. Большинство программистов учились сами ;), не надо бояться что-то делать самому. Надо просто брать и делать.

И сразу за большие проекты хвататься не стоит. Начни с простого. Напиши какой-нить файл-менеджер, потом попробуй к нему поддержку плагинов прикрутить.
Post #: 1459
RE: Вопросы по C/C++ (Для новичков) - 2010-04-15 16:29:09.426666   
rgo

Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
quote:

ORIGINAL: iidsp
а вообще, я хотел вот что спросить, где можно искать какие-либо опенсорс проэкты, дабы научиться работать в команде.

Где поискать? На sf.net, например. Но я бы рекомендовал искать у себя на диске – выбрать что-нибудь из того, что используешь ты. Походи по сайтам разработчиков. Поищи слова vacancies, how-to-help и тп. Почитай TODO, список открытых багов. Займись исправь баг, или приделай фичу. Отправь патч в список рассылки. Займись следующим багом. И так до тех пор, пока не станешь членом команды.
Post #: 1460
RE: Вопросы по C/C++ (Для новичков) - 2010-04-15 16:33:02.690000   
rgo

Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
quote:

ORIGINAL: _SaZ_
Большинство программистов учились сами ;)

Да. Работая в команде ;)
Линус Торвальс сейчас признанный специалист в архитектуре ядра, но когда он начинал писать linux… ууу… ты видел код linux-0.1? То есть конечно же, это не самый плохой код, который я видел, далеко не самый плохой, но всё же не фонтан. И он бы никогда не стал специалистом, если бы не работал в команде.
Post #: 1461
RE: Вопросы по C/C++ (Для новичков) - 2010-04-15 17:08:40.510000   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
Ну я это и имел в виду. Т.е. стоящий над душой универсальный-справочник-программист-который-всё-подскажет - это не вариант.
Post #: 1462
RE: Вопросы по C/C++ (Для новичков) - 2010-04-15 18:59:05.560000   
Herm

Сообщений: 218
Оценки: 0
Присоединился: 2008-08-15 21:08:09.063333
Привет Парни :) Сейчас изучаю Си в инстике… Возникла пара вопросов: Есть задача, формулируется так:

quote:

Написать программу, которая решает линейное уравнение a ∙ x + b = 0. Использовать операторы if-else if. Логические выражения в условиях этих операторов не должны содержать логических операций && и ||. Предусмотреть четыре возможных исхода при решении уравнения:
- нет решения,
- найдено единственное решение,
- любое число является решением,
- решение единственное, но не входит в диапазон типа переменной x.
В операторе if-else if определить некоторую переменную flag, которая принимает четыре значения, соответствующих возможному исходу решения. Вывод текстовой информации с результатами решения организовать с исполь-зованием оператора switch, условие которого содержит flag. Выход из програм-мы должен быть единственным.
Организовать проверку корректности данных при вводе коэффициентов a и b.


В принципе получилось все, кроме последнего пункта про проверку, когда начинаю проверять с помощью isdigit, то ход программы сбивается…


Вот сам код:
#include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;stdlib.h&gt; #include &lt;ctype.h&gt; //Functions int lin (float a, float b, float *px); int lin (float a, float b, float *px) { if (a==0) if (b==0) return 0; else return 1; else { *px=-b/a; return 2; } } int vvod (char c); int vvod (char c) { int a; scanf("%c",&c); if (isdigit(c)!=0) { a=atoi(&c); return a; } else printf("noooo"); return 0; } // MAIN int main () { clrscr(); float a,b,x; int flag; char c; // Announcement printf("Type A= "); a=vvod(c); printf("Type B= "); b=vvod(c); printf("\n\n"); // Solving flag=lin(a,b,&x); // Switcher switch (flag) { case 0: printf("Any decision");break; case 1: printf("No decision");break; case 2: x=-b/a;printf("x= %f",x);break; default:printf("olololo");break; } getch(); }

Не могу понять, за что ухватиться, в отладчике не очень умею работать. Оболочка BC 3.11
Post #: 1463
RE: Вопросы по C/C++ (Для новичков) - 2010-04-15 19:20:00.756666   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
У тебя скорее всего вылетает на функции atoi. Ты туда передаёшь неверный параметр. Она работает не с единичными символами, а со строками. В Си это немного разные вещи. Строка обязательно должна быть массивом.

Можешь заюзать такой костыль:char wrap[2] = { 0, 0, }; wrap = c; a = atoi( wrap );или такой:a = c - '0';
Но возникает вопрос, а что же делать, если нужно ввести более одной цифры?
Решение:float vvod( void ) { float val; scanf( "%f", &val ); return val; }
P.S. на будущее учти, что в твоём компиляторе есть баг. Он не позволяет использовать scanf для некоторых полей структур:struct test { float f; int i; }gg; scanf( "%d", & gg.i ); // нормально scanf( "%f", & gg.f ); // будут прочитаны неверные данные
Post #: 1464
RE: Вопросы по C/C++ (Для новичков) - 2010-04-15 20:50:35.433333   
Herm

Сообщений: 218
Оценки: 0
Присоединился: 2008-08-15 21:08:09.063333

quote:

ORIGINAL: _SaZ_
Но возникает вопрос, а что же делать, если нужно ввести более одной цифры?
Решение:float vvod( void ) { float val; scanf( "%f", &val ); return val; }


Скажи, в чём смысл этой функции? она возвращает значение введённое, с клавиатуры, там ведь нет проверки? Или ты дал этот код как шаблон для моей функции?

Просто я такие маленькие функции обычно делаю через #define
Post #: 1465
RE: Вопросы по C/C++ (Для новичков) - 2010-04-15 21:05:40.013333   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
Не стоит вообще делать функции через #define, если у тебя нет в коде условной компиляции. Я этот код дал как шаблон для твоей функции, поскольку у тебя в коде страшная каша с типами данных. Используй везде float - будет проще и не будет ошибок при вычислениях.

А что ты хочешь проверять при вводе?
Post #: 1466
RE: Вопросы по C/C++ (Для новичков) - 2010-04-15 22:14:08.543333   
Sunzer

Сообщений: 253
Оценки: 31190
Присоединился: 2007-06-15 19:23:32.436666

quote:


#include &lt;windows.h&gt;

#include &lt;winnt.h&gt;

/* Структура секции PE файла */
struct Section {
char Name[8];
DWORD VirtualSize;
DWORD VirtualAddress;
DWORD PhysicalSize;
DWORD PhysicalOffset;
DWORD PointerToRelocations;
DWORD PointerToLinenumbers;
WORD NumberOfRelocations;
WORD NumberOfLinenumbers;
DWORD Characteristics;
};

HANDLE FHandle = INVALID_HANDLE_VALUE;
unsigned long ReadBytes, FileSize;
byte *a;

DWORD PEHeaderOffset;
DWORD ImageBase,SectionAlignment,FileAlignment,SizeOfImage;
WORD SectionNum;


void AddNewSection()
{
Section NewSection;
//DWORD b = 0xAABBCCDD;

//*(PDWORD) &amp;a[PEHeaderOffset+0x06])++;
/*NewSection.Name[8];
NewSection.VirtualSize = SectionAlignment;
NewSection.VirtualAddress = 0;
NewSection.PhysicalSize = FileAlignment;
NewSection.PhysicalOffset = 0;
NewSection.PointerToRelocations = 0;
NewSection.PointerToLinenumbers = 0;
NewSection.NumberOfRelocations = 0;
NewSection.NumberOfLinenumbers = 0;
NewSection.Characteristics = 0xE0000000;
CopyMemory(&amp;NewSection,&amp;a[PEHeaderOffset+0xF8+(SectionNum)*0x28],0x28);*/
}

/* Процедура считывающая информацию о файле */
void ReadPEInforamion()
{
PEHeaderOffset = *(PDWORD) &amp;a[0x3C];
SectionNum = *(PDWORD) &amp;a[PEHeaderOffset+0x06];
ImageBase = *(PDWORD) &amp;a[PEHeaderOffset+0x34];
SectionAlignment = *(PDWORD) &amp;a[PEHeaderOffset+0x38];
FileAlignment = *(PDWORD) &amp;a[PEHeaderOffset+0x3C];
SizeOfImage = *(PDWORD) &amp;a[PEHeaderOffset+0x50];
}

int main()
{
FHandle = CreateFileA("test.exe",GENERIC_ALL,3,NULL,3,0x80,NULL);
if(FHandle != INVALID_HANDLE_VALUE)
{
FileSize = GetFileSize(FHandle, 0);
a = (byte*) malloc(FileSize);
ReadFile(FHandle, a, FileSize, &amp;ReadBytes, NULL);
ReadPEInforamion();
AddNewSection();
SetFilePointer(FHandle,0,0,FILE_BEGIN);
WriteFile(FHandle, a, FileSize, &amp;ReadBytes, NULL);
free(a);
CloseHandle(FHandle);
}
return 0;
}



Изучаю си.
1)Почему в компиляторе MinGW не воспринимаются такие конструкции


PEHeaderOffset = *PDWORD(&a[0x3C]);
Такое компилирует DevC++


2)Почему не компилируется в MinGW сорец который выше?


quote:


pe_crypt.c: In function `AddNewSection':
pe_crypt.c:29: error: `Section' undeclared (first use in thi
pe_crypt.c:29: error: (Each undeclared identifier is reporte
pe_crypt.c:29: error: for each function it appears in.)
pe_crypt.c:29: error: syntax error before "NewSection"




В DevC++ компилировалось.


3) В си есть что то подобное как в Delphi - 


with … do
 …
end;


4) В си нет такого насколько я понял?


if(string1 == string2) { /* to */ }


5) Какие ключи компиляции использовать что бы компилировался в нормальный код, а не:


Post #: 1467
RE: Вопросы по C/C++ (Для новичков) - 2010-04-16 00:07:48.320000   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
Попробуй С++ ;)

Про MinGW ничего не скажу, не юзал
Post #: 1468
RE: Вопросы по C/C++ (Для новичков) - 2010-04-16 00:29:58.406666   
Denaturat

Сообщений: 1741
Оценки: 453
Присоединился: 2008-10-27 20:50:06.380000
quote:

ORIGINAL: Sunzer

1)Почему в компиляторе MinGW не воспринимаются такие конструкции
2)Почему не компилируется в MinGW сорец который выше?


http://www.mingw.org/mailing_lists

quote:

ORIGINAL: Sunzer

3) В си есть что то подобное как в Delphi - 


нет. в C++ эмулируется с помощью RAII

quote:

ORIGINAL: Sunzer

4) В си нет такого насколько я понял?


неправильно понял

http://irc.essex.ac.uk/www.iota-six.co.uk/c/g4_strcpy_strncpy_strcmp.asp

quote:

ORIGINAL: Sunzer

5) Какие ключи компиляции использовать что бы компилировался в нормальный код, а не:


телепаты в отпуске

http://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options
http://gcc.gnu.org/onlinedocs/gcc/Assembler-Options.html#Assembler-Options
http://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html#Code-Gen-Options

скажи, а нахрена ты вообще используешь MinGW?
Post #: 1469
RE: Вопросы по C/C++ (Для новичков) - 2010-04-16 02:18:16.623333   
rgo

Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
quote:

ORIGINAL: Sunzer

void AddNewSection() { Section NewSection;

Изучаю си.
1)Почему в компиляторе MinGW не воспринимаются такие конструкции


PEHeaderOffset = *PDWORD(&a[0x3C]);
Такое компилирует DevC++


2)Почему не компилируется в MinGW сорец который выше?


pe_crypt.c: In function `AddNewSection': pe_crypt.c:29: error: `Section' undeclared (first use in thi pe_crypt.c:29: error: (Each undeclared identifier is reporte pe_crypt.c:29: error: for each function it appears in.) pe_crypt.c:29: error: syntax error before "NewSection"

1) Загадка. Выложи сообщение об ошибке. Или по совету денатурата копай список рассылки.
2) Не компилируется, потому что ты пишешь C++ код, а компилируешь его компилятором C. Замени Section на struct Section, скомпилируется.
Post #: 1470
RE: Вопросы по C/C++ (Для новичков) - 2010-04-16 02:29:35.643333   
rgo

Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
quote:

ORIGINAL: Sunzer
5) Какие ключи компиляции использовать что бы компилировался в нормальный код, а не:

Не знаю что тебя не устраивает в коде. Но попробуй добавить `-march=core2 -Os -ftracer', у меня в CFLAGS ещё зачем-то -fgcse-sm -fgcse-las. Зачем – не помню. Почитай info gcc, там всё очень подробно расписано. А, и core2 смени на то, что полезнее. core2 код может отказаться запускаться на amd64.
Я всегда, когда интересуюсь ассемблерным кодом генерируемым gcc делаю так: gcc -Os -fverbose-asm -S file.c
Post #: 1471
RE: Вопросы по C/C++ (Для новичков) - 2010-04-16 06:15:18.496666   
Stil Free 2

Сообщений: 183
Оценки: 0
Присоединился: 2009-03-26 17:17:38.296666
Ну если вы предпочтительнее написали на СИ++ то функция сравнения строк
if(string1 == string2) { /* to */ }=&gt; if (strcmp(string1,string2) !=0) { .... }else { .... }
Post #: 1472
RE: Вопросы по C/C++ (Для новичков) - 2010-04-16 13:17:24.956666   
Herm

Сообщений: 218
Оценки: 0
Присоединился: 2008-08-15 21:08:09.063333
_SaZ_, Передо мной стоит задача- осуществить контроль вводимых данных, универсальная такая функция, которая только числа пропускает, иначе нужно ввести еще раз.
Post #: 1473
RE: Вопросы по C/C++ (Для новичков) - 2010-04-16 13:24:24.046666   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
gets + strtod в помощь

P.S. а зачем такое глупое требование? Просили бы уже сразу оконный интерфейс псевдографикой рисовать…
Post #: 1474
RE: Вопросы по C/C++ (Для новичков) - 2010-04-16 15:02:53.730000   
Herm

Сообщений: 218
Оценки: 0
Присоединился: 2008-08-15 21:08:09.063333
Препод говорит, а если пользователь вместо числа ввел слово? Программа не сработает, а должна… :) Притом реализовать все это надо бы в максимально - простом виде. В моем задании это последнее предложение…

quote:

Организовать проверку корректности данных при вводе коэффициентов a и b.


Это одна из первых лаб. там не должно быть ничего сложного, наверное… а у меня функция atoi так и продолжает вылетать, пробовал сделать через массив wrap, так вообще не вышло, ругается, что это LValue величина…
Post #: 1475
RE: Вопросы по C/C++ (Для новичков) - 2010-04-16 15:21:56.466666   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
Код показывай свой
Post #: 1476
RE: Вопросы по C/C++ (Для новичков) - 2010-04-16 15:28:39.973333   
a13xb

Сообщений: 17
Оценки: 0
Присоединился: 2010-03-12 06:22:14.200000
char buf[BUF_SIZE]; float val; do { fgets(buf, sizeof (buf), stdin); } while (sscanf (buf, "%f", &val) != 1); как-то так
Post #: 1477
RE: Вопросы по C/C++ (Для новичков) - 2010-04-16 20:17:15.896666   
rgo

Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
quote:

ORIGINAL: Herm
Препод говорит, а если пользователь вместо числа ввел слово? Программа не сработает, а должна… :) Притом реализовать все это надо бы в максимально - простом виде. В моем задании это последнее предложение…
quote:

Организовать проверку корректности данных при вводе коэффициентов a и b.

Это одна из первых лаб. там не должно быть ничего сложного, наверное… а у меня функция atoi так и продолжает вылетать, пробовал сделать через массив wrap, так вообще не вышло, ругается, что это LValue величина…

atoi не выполняет проверки. надо strtol

Но чем не устраивает:while (scanf ("%f", &val) != 1) { fprintf (stderr, "Я сказал: вводи флоат!\n"); if (feof (stdin)) { fprintf (stderr, "Сука. Ну вот кто тебя просил тыкать C-d?\n"); exit (1); } }
Post #: 1478
RE: Вопросы по C/C++ (Для новичков) - 2010-04-16 20:35:07.160000   
Sunzer

Сообщений: 253
Оценки: 31190
Присоединился: 2007-06-15 19:23:32.436666
Ассемблерные вставки в коде поддерживает только MSVS? 
Post #: 1479
RE: Вопросы по C/C++ (Для новичков) - 2010-04-16 20:47:24.800000   
Herm

Сообщений: 218
Оценки: 0
Присоединился: 2008-08-15 21:08:09.063333
_SaZ_, Вот я сделал минипрогу, которая тока и делает что проверяет вводимое значение, и она работает:

quote:

#include &lt;stdio.h&gt; #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;ctype.h&gt; int vvod (char c); int vvod (char c) { int a; scanf("%c",&c); if (isdigit(c)) {a=atoi(&c); return a;} else printf("noooo"); return 0; } void main () { clrscr(); int b; char c; b=vvod(c); printf("%d",b); getch(); }



Код работает, Не могу привить к своей программе….:)

Вот что выходит:

quote:

#include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;stdlib.h&gt; #include &lt;ctype.h&gt; //Functions int lin (float a, float b, float *px); int lin (float a, float b, float *px) { if (a==0) if (b==0) return 0; else return 1; else { *px=-b/a; return 2; } } int vvod (char c); int vvod (char c) { int a; scanf("%c",&c); if (isdigit(c)!=0) { a=atoi(&c); return a; } else printf("Type float bitch"); return 0; } // MAIN int main () { clrscr(); float a,b,x; int flag; char c; // Announcement printf("Type A= "); a=vvod(c); // scanf("%f",&a); printf("Type B= "); b=vvod(c); // scanf("%f",&b); printf("\n\n"); // Solving flag=lin(a,b,&x); // Switcher switch (flag) { case 0: printf("Any decision");break; case 1: printf("No decision");break; case 2: x=-b/a;printf("x= %f",x);break; default:printf("olololo");break; } getch(); }


А тут отказывается работать, как будто проваливается…
Post #: 1480
Страниц:  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 [37] 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
Все форумы >> [Компилируемые языки] >> RE: Вопросы по C/C++ (Для новичков)







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.