RE: Вопросы по C/C++ (Для новичков)
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
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/
|
|
|
RE: Вопросы по C/C++ (Для новичков) - 2010-04-14 17:58:44.456666
|
|
|
Denaturat
Сообщений: 1741
Оценки: 453
Присоединился: 2008-10-27 20:50:06.380000
|
quote:
ORIGINAL: iidsp имел в виду сравнение работы самих контейнеров друг с другом на основе какой-либо задачи… какой смысл сравнивать тёплое с мягким?
|
|
|
RE: Вопросы по C/C++ (Для новичков) - 2010-04-14 18:13:50.783333
|
|
|
iidsp
Сообщений: 379
Оценки: 0
Присоединился: 2009-10-14 23:13:19.856666
|
quote:
какой смысл сравнивать тёплое с мягким? ну мало ли, ради того что бы показать, что тот или иной контейнер будет жутко тормозным с определенным классом задач, а вот этот или этот, с ними справиться лучше!
|
|
|
RE: Вопросы по C/C++ (Для новичков) - 2010-04-14 18:34:32.340000
|
|
|
_SaZ_
Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
|
Выбирай контейнер в зависимости от решаемой задачи - и будет тебе счастье ;)
|
|
|
RE: Вопросы по C/C++ (Для новичков) - 2010-04-14 19:07:13.916666
|
|
|
iidsp
Сообщений: 379
Оценки: 0
Присоединился: 2009-10-14 23:13:19.856666
|
Возможно, довольно фривольный вопрос задам, но что на данный момент следует учить дополнительно С++ программисту, что быть востребованным на рынке. какие технологии помимо знания самого языка! если можно, то последовательность изучения этих технологий для меня тоже имеет существенную роль, да бы не выпучить глаза и не кидаться с одного на другое. можете, если не секрет, привести пример с вашего места работы. Спасибо.
|
|
|
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 Возможно, довольно фривольный вопрос задам, но что на данный момент следует учить дополнительно С++ программисту, что быть востребованным на рынке. какие технологии помимо знания самого языка! если можно, то последовательность изучения этих технологий для меня тоже имеет существенную роль, да бы не выпучить глаза и не кидаться с одного на другое. можете, если не секрет, привести пример с вашего места работы. Спасибо. Спросил ты у большой банды школяров которые востребованы на рынке=) Учи сокеты( и соответсвенно работу с протоколами) это всегда было полезно, правильной работе с ОС это основное=)
|
|
|
RE: Вопросы по C/C++ (Для новичков) - 2010-04-14 19:35:12.143333
|
|
|
iidsp
Сообщений: 379
Оценки: 0
Присоединился: 2009-10-14 23:13:19.856666
|
quote:
Спросил ты у большой банды школяров которые востребованы на рынке=) япацтолом вопрос был конечно же к rgo, _SaZ_, Denaturat ну и к тем. у кого есть что сказать… т.к. данная ветка форума совсем затихла, то я даже и не знаю у кого мне еще спрашивать тут…
|
|
|
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. Вот тут и пригодятся глубокие знания той или иной области.
|
|
|
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
# /* [ <!-- */ include <stdio.h> /* \
#{\
`""""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; \
} /*
# \
> main :: IO () -- -- \
> main = putStr "I'm a Literate Haskell program.\n"
# \
]>++++++++[<+++++++++>-]<+.>>++++[<++++++++++>-]<-.[-]>++++++++++ \
[<+++++++++++>-]<-.>>++++[<++++++++>-]<.>>++++++++++[<++++++++++> \
-]<- - -.<.>+.->>++++++++++[<+++++++++++>-]<++++.<.>>>++++++++++[ \
<++++++++++>-]<+++++.<<<<+.->>>>- - -.<+++.- - -<++.- ->>>>>+++++ \
+++++[<+++++++++++>-]<- - -.<<<<<.<+++.>>>.<<<-.- ->>>>+.<.<.<<.> \
++++++++++++++.[-]++++++++++"""`
# \
print "I'm a Python program."; """[-][--><html><head>
<!--:--><title>I'm a HTML page</title></head><body>
<!--:--><h1>I'm a <marquee><blink>horrible HTML</blink></marquee> page</h1>
<!--:--><script language="Javascript">
<!--: # \
setTimeout( // \
function () { // \
document.body.innerHTML = "<h1>I'm a javascript-generated HTML page</h1>"; // \
}, 10000); // \
//-->
</script><!--: \
</body></html><!-- } # \
say "I'm a Perl6 program", try { " ($?PUGS_VERSION)" } // "", "."; # """ # */
#define FOO ]-->~
глаза сломал [sm=14.gif] что это за - \
|
|
|
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%
|
|
|
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 можете, если не секрет, привести пример с вашего места работы. не могу
|
|
|
RE: Вопросы по C/C++ (Для новичков) - 2010-04-15 00:39:05.666666
|
|
|
iidsp
Сообщений: 379
Оценки: 0
Присоединился: 2009-10-14 23:13:19.856666
|
Спасибо за то, что откликнулись… я в шоке от такого количества технологий и направлений, которые нужно знать!!! есть к чему стремиться! это титанический труд…
|
|
|
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
|
|
|
RE: Вопросы по C/C++ (Для новичков) - 2010-04-15 02:54:30.886666
|
|
|
rgo
Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
|
quote:
ORIGINAL: iidsp Спасибо за то, что откликнулись… я в шоке от такого количества технологий и направлений, которые нужно знать!!! есть к чему стремиться! это титанический труд… Разберись как работает STL и boost. А остальное приложится в процессе работы.
|
|
|
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]
|
|
|
RE: Вопросы по C/C++ (Для новичков) - 2010-04-15 03:59:54.676666
|
|
|
iidsp
Сообщений: 379
Оценки: 0
Присоединился: 2009-10-14 23:13:19.856666
|
http://eurl.ru/gameforC гляньте на игру для С++ программистов =)
|
|
|
RE: Вопросы по C/C++ (Для новичков) - 2010-04-15 15:57:47.740000
|
|
|
Denaturat
Сообщений: 1741
Оценки: 453
Присоединился: 2008-10-27 20:50:06.380000
|
quote:
ORIGINAL: iidsp это титанический труд это полгода умеренно напряжённых занятий в свободное время, благо литература (да и персоналка для практики) нынче более чем доступны. ещё полезно на штангу записаться, а то от монитора совсем зелёным стать можно
|
|
|
RE: Вопросы по C/C++ (Для новичков) - 2010-04-15 16:07:17.286666
|
|
|
iidsp
Сообщений: 379
Оценки: 0
Присоединился: 2009-10-14 23:13:19.856666
|
quote:
это полгода умеренно напряжённых занятий в свободное время, благо литература (да и персоналка для практики) нынче более чем доступны. ещё полезно на штангу записаться, а то от монитора совсем зелёным стать можно Это хорошо, когда кто-то помогает, наставляет, рядом есть человек, который в этом варится и знает данную кухню. а то можно много что учить, а потом окажется, что ты зря терял время, думал что что-то знаешь, а на самом деле это был фейк твоего сознания. а вообще, я хотел вот что спросить, где можно искать какие-либо опенсорс проэкты, дабы научиться работать в команде. набраться опыта, а то на всяких приложиениях, типо прочитай из файла слово абракадабра и составь из него 15 новых слов в обратном порядке, отсортировав их по алфавиту - далеко не уедешь…
|
|
|
RE: Вопросы по C/C++ (Для новичков) - 2010-04-15 16:27:28.726666
|
|
|
_SaZ_
Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
|
Самый простой способ определить фэйк или нет - сходить на собеседование + попробовать что-то написать. Для этого не надо под рукой иметь наставника. Большинство программистов учились сами ;), не надо бояться что-то делать самому. Надо просто брать и делать. И сразу за большие проекты хвататься не стоит. Начни с простого. Напиши какой-нить файл-менеджер, потом попробуй к нему поддержку плагинов прикрутить.
|
|
|
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, список открытых багов. Займись исправь баг, или приделай фичу. Отправь патч в список рассылки. Займись следующим багом. И так до тех пор, пока не станешь членом команды.
|
|
|
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? То есть конечно же, это не самый плохой код, который я видел, далеко не самый плохой, но всё же не фонтан. И он бы никогда не стал специалистом, если бы не работал в команде.
|
|
|
RE: Вопросы по C/C++ (Для новичков) - 2010-04-15 17:08:40.510000
|
|
|
_SaZ_
Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
|
Ну я это и имел в виду. Т.е. стоящий над душой универсальный-справочник-программист-который-всё-подскажет - это не вариант.
|
|
|
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 <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <ctype.h>
//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
|
|
|
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 ); // будут прочитаны неверные данные
|
|
|
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
|
|
|
RE: Вопросы по C/C++ (Для новичков) - 2010-04-15 21:05:40.013333
|
|
|
_SaZ_
Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
|
Не стоит вообще делать функции через #define, если у тебя нет в коде условной компиляции. Я этот код дал как шаблон для твоей функции, поскольку у тебя в коде страшная каша с типами данных. Используй везде float - будет проще и не будет ошибок при вычислениях. А что ты хочешь проверять при вводе?
|
|
|
RE: Вопросы по C/C++ (Для новичков) - 2010-04-15 22:14:08.543333
|
|
|
Sunzer
Сообщений: 253
Оценки: 31190
Присоединился: 2007-06-15 19:23:32.436666
|
quote:
#include <windows.h> #include <winnt.h> /* Структура секции 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) &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(&NewSection,&a[PEHeaderOffset+0xF8+(SectionNum)*0x28],0x28);*/ } /* Процедура считывающая информацию о файле */ void ReadPEInforamion() { PEHeaderOffset = *(PDWORD) &a[0x3C]; SectionNum = *(PDWORD) &a[PEHeaderOffset+0x06]; ImageBase = *(PDWORD) &a[PEHeaderOffset+0x34]; SectionAlignment = *(PDWORD) &a[PEHeaderOffset+0x38]; FileAlignment = *(PDWORD) &a[PEHeaderOffset+0x3C]; SizeOfImage = *(PDWORD) &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, &ReadBytes, NULL); ReadPEInforamion(); AddNewSection(); SetFilePointer(FHandle,0,0,FILE_BEGIN); WriteFile(FHandle, a, FileSize, &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) Какие ключи компиляции использовать что бы компилировался в нормальный код, а не:
|
|
|
RE: Вопросы по C/C++ (Для новичков) - 2010-04-16 00:07:48.320000
|
|
|
_SaZ_
Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
|
Попробуй С++ ;) Про MinGW ничего не скажу, не юзал
|
|
|
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?
|
|
|
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, скомпилируется.
|
|
|
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
|
|
|
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 */ }=>
if (strcmp(string1,string2) !=0)
{
....
}else
{
....
}
|
|
|
RE: Вопросы по C/C++ (Для новичков) - 2010-04-16 13:17:24.956666
|
|
|
Herm
Сообщений: 218
Оценки: 0
Присоединился: 2008-08-15 21:08:09.063333
|
_SaZ_, Передо мной стоит задача- осуществить контроль вводимых данных, универсальная такая функция, которая только числа пропускает, иначе нужно ввести еще раз.
|
|
|
RE: Вопросы по C/C++ (Для новичков) - 2010-04-16 13:24:24.046666
|
|
|
_SaZ_
Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
|
gets + strtod в помощь P.S. а зачем такое глупое требование? Просили бы уже сразу оконный интерфейс псевдографикой рисовать…
|
|
|
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 величина…
|
|
|
RE: Вопросы по C/C++ (Для новичков) - 2010-04-16 15:21:56.466666
|
|
|
_SaZ_
Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
|
Код показывай свой
|
|
|
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);
как-то так
|
|
|
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);
}
}
|
|
|
RE: Вопросы по C/C++ (Для новичков) - 2010-04-16 20:35:07.160000
|
|
|
Sunzer
Сообщений: 253
Оценки: 31190
Присоединился: 2007-06-15 19:23:32.436666
|
Ассемблерные вставки в коде поддерживает только MSVS?
|
|
|
RE: Вопросы по C/C++ (Для новичков) - 2010-04-16 20:47:24.800000
|
|
|
Herm
Сообщений: 218
Оценки: 0
Присоединился: 2008-08-15 21:08:09.063333
|
_SaZ_, Вот я сделал минипрогу, которая тока и делает что проверяет вводимое значение, и она работает: quote:
#include <stdio.h>
#include <stdio.h>
#include <conio.h>
#include <ctype.h>
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 <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <ctype.h>
//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();
} А тут отказывается работать, как будто проваливается…
|
|
|
|
|