|
1 / 1 / 0
Регистрация: 28.01.2010
Сообщений: 537
|
||||||
Вопросы о С.18.07.2011, 01:49. Показов 166026. Ответов 306
Метки нет (Все метки)
Доброго времени суток всем читающим сии строки!
В который раз сажусь писать прогу на Си, и вспоминаю про АССЕМБЛЕР... Есть некий код...
Внимание Вопрос. Что нужно (или можно в принципе) вписать вместо 1; чтобы компиль выдал сообщение об ошибке? Или поставте меня на правильные рельсы. Как его можно переписать? Да так, чтобы хоть ругался когда это нужно и как мне это нужно. А то что-то я не могу понять, как это ...
0
|
||||||
| 18.07.2011, 01:49 | |
|
Ответы с готовыми решениями:
306
БД: Контрольные вопросы по дисциплинам, темам и разделам: дисциплина; преподаватели; набор билетов; билет; вопросы к билетам; вопросы; темы вопросов Когда вопросы кончаются, сделать кнопку неактивной и вывести сообщение о том, что вопросы кончились вопросы про вопросы |
|
0 / 0 / 0
Регистрация: 14.07.2011
Сообщений: 96
|
||||||||
| 06.02.2012, 01:11 | ||||||||
Вот эта строчка не хотела выполняться
И номер строки с описанием ошибки. Что у вас выводится? И какой компилятор?
Явное приведение только если ворнинг уберет. http://www.cyberkuru.ru/programming/cpp ... age10.html
0
|
||||||||
|
0 / 0 / 0
Регистрация: 06.04.2010
Сообщений: 1,088
|
||
| 06.02.2012, 01:28 | ||
Не выдает ошибок. Вроде компилируется нормально, но не работает. Точнее - в асме функция прописана, все взято с правильного адреса, сравнено, посчитано, но в конце не пишется результат в исходный адрес, т.е. переданную переменную..
0
|
||
|
0 / 0 / 0
Регистрация: 19.01.2012
Сообщений: 49
|
||
| 06.02.2012, 01:32 | ||
Явное приведение только если ворнинг уберет. http://www.cyberkuru.ru/programming/cpp ... age10.html Вот именно что "должно". Но не обязательно оно будет работать так как задумал программист. В общем случае можно свести неявное приведение типов к unknown behavior, которое к тому же не определяется компилятором. Ну и Си это не С++, тут намного проще прострелить себе ногу.
0
|
||
|
0 / 0 / 0
Регистрация: 19.01.2012
Сообщений: 49
|
||
| 06.02.2012, 01:35 | ||
0
|
||
|
0 / 0 / 0
Регистрация: 04.05.2010
Сообщений: 115
|
|||||||
| 06.02.2012, 06:12 | |||||||
Code
0
|
|||||||
|
0 / 0 / 0
Регистрация: 28.02.2011
Сообщений: 461
|
||
| 06.02.2012, 14:01 | ||
a = temp; ... Лучше так: *a=temp;
0
|
||
|
0 / 0 / 0
Регистрация: 02.11.2004
Сообщений: 1,112
|
|||||||
| 06.02.2012, 15:27 | |||||||
void tood_data_to_cnt (unsykned int *a) { unsykned int temp = *a; if (key_cod == 0xff) return; temp = (temp==0) ? key_cod : ((temp*10)+ key_cod); a = temp; } // основной цикл ... tood_data_to_cnt (&cnt_imp); ... я вот тока недопонял, откуда в этой функции берётся значение в key_cod? алсо, я бы написал так:
0
|
|||||||
|
0 / 0 / 0
Регистрация: 04.05.2010
Сообщений: 115
|
|||
| 06.02.2012, 19:07 | |||
0
|
|||
|
0 / 0 / 0
Регистрация: 19.01.2012
Сообщений: 49
|
|||||||
| 06.02.2012, 19:41 | |||||||
{ if (key_cod == 0xff) return; if (*a) {*a = (*a * 10) + key_cod;} else {*a = key_cod;} } нет лишней переменной temp -- нет связанной с ней чехарды с регистрами в результирующем асм-коде Зато куча лишних операций разыменовывания указателя. Ну и результат действия (*a * 10) будет зависеть от того решит ли компилятор сначала разыменовать переменную или же все таки сначала умножит. p.s.
0
|
|||||||
|
0 / 0 / 0
Регистрация: 28.02.2011
Сообщений: 461
|
||
| 06.02.2012, 21:02 | ||
0
|
||
|
0 / 0 / 0
Регистрация: 06.04.2010
Сообщений: 1,088
|
|||||||||||||||||
| 06.02.2012, 22:46 | |||||||||||||||||
Фуекция, о которой речь шла выше всего лишь часть относительно большой программы. А заработала функция в таком виде:
Если кто подскажет, что здесь не правильно - буду благодарен.
0
|
|||||||||||||||||
|
0 / 0 / 0
Регистрация: 19.01.2012
Сообщений: 49
|
||
| 06.02.2012, 22:59 | ||
Ну и если переданная ссылка в переменную var будет нулевой - то может выскочить все что угодно. Хотя этот момент можно проверить и в другом месте.
0
|
||
|
0 / 0 / 0
Регистрация: 28.02.2011
Сообщений: 461
|
|
| 06.02.2012, 23:27 | |
|
Кстати да, что вам мешает возвращение значения функцией сделать? Обычно по ссылке большие структуры данных передают или хранилище доп. результатов работы ф-ции
BOOL WINAPI ReadFile( __in HANDLE hFile, __out LPVOID lpBuffer, __in DWORD nNumberOfBytesToRead, __out_opt LPDWORD lpNumberOfBytesRead, __inout_opt LPOVERLAPPED lpOverlapped );
0
|
|
|
0 / 0 / 0
Регистрация: 06.04.2010
Сообщений: 1,088
|
||
| 06.02.2012, 23:38 | ||
0
|
||
|
0 / 0 / 0
Регистрация: 19.01.2012
Сообщений: 49
|
||
| 06.02.2012, 23:39 | ||
__in HANDLE hFile, __out LPVOID lpBuffer, __in DWORD nNumberOfBytesToRead, __out_opt LPDWORD lpNumberOfBytesRead, __inout_opt LPOVERLAPPED lpOverlapped ); Вот только LPVOID и LPDWORD это указатели, и эта функция работает так же как и с обычными указателями, при этом просто возвращает отработала она или нет, а результаты пишет в указанный lpBuffer :)
0
|
||
|
0 / 0 / 0
Регистрация: 19.01.2012
Сообщений: 49
|
||
| 06.02.2012, 23:41 | ||
0
|
||
|
0 / 0 / 0
Регистрация: 06.04.2010
Сообщений: 1,088
|
||
| 06.02.2012, 23:47 | ||
Неа. Не заработал. Там при выходе из этой функции возвращался какой-то левый результат. Что-то типа 3342.. Но опять же, возможно я что-то где-то не определил..
0
|
||
|
0 / 0 / 0
Регистрация: 14.07.2011
Сообщений: 96
|
||
| 07.02.2012, 03:10 | ||
Скобки вокруг a = key_cod надо убрать. Интересно, завтра проверю, как они влияют на результат.
0
|
||
|
0 / 0 / 0
Регистрация: 02.11.2004
Сообщений: 1,112
|
|
| 14.02.2012, 13:58 | |
|
а подскажите, как сравнить две строки?
просто дайте кусок кода а то, нутром чую, чего-то я упускаю со всеми этими массивами и указателями
0
|
|
|
omx
|
|
| 14.02.2012, 14:12 | |
|
strcmp, strncmp
|
|
| 14.02.2012, 14:12 | |
|
Наука не отвечает на вопросы "почему". Наука отвечает на вопросы "как, сколько" Вопросы Вопросы по TP Вопросы по C++ Вопросы по Си Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Ноутбук Альфария
kumehtar 24.08.2026
Встретился тут в сети ноутбук Альфария, примарха Альфа-Легиона. Хотя возможно, это ноутбук Омегона, разумеется.
Ну как вам?
|
Мастера простых решений
DevAlt 23.08.2026
В сишарп стэках winforms, да и wpf существует сложная система связывания
источниках данных и элементов формы(текстовые поля и метки), опирается все
это на технологию событий и мета. . .
|
Цена ошибки
DevAlt 23.08.2026
Человек я беспокойный и потому заинтересовался OCaml,
в чате форсили функторы модулей как суперфичу.
Пытаясь отдуплить концепт, наткнулся на тутор с простым примером.
А главный принцип обучения от. . .
|
Сегодня суббота, 22.08.2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины.
zorxor 22.08.2026
Сегодня суббота, 22. 08. 2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины. Кто Я, откуда Я пришел и куда Я иду? Эти вопросы не оставляют меня ни на секунду. Жизнь на планете Земля. . .
|
|
Жизня: рисунок укладки багажа, сделанный клодом
anaschu 21.08.2026
Сделал 15 снимков, он по снимкам сделал схему.
|
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства.
Жизнь действительно предъявляет каждому. . .
|
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
|
Лето уходит
kumehtar 17.08.2026
|