|
1 / 1 / 0
Регистрация: 28.01.2010
Сообщений: 537
|
||||||
Вопросы о С.18.07.2011, 01:49. Показов 165777. Ответов 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++ Вопросы по Си Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Оказывается, Unreal Engine позволяет качество на порядки выше, чем было в Lineedge
Etyuhibosecyu 05.07.2026
Жаль, конечно, что я не узнал об этом, пока Lineedge существовала, а то бы Noname2331 написал, что волки превращаются в пиксельную кашу, а я бы его попросил скачать какую-нибудь бриллиантовую или Pro. . .
|
Doom для терминала без стрельбы и монстров. 3D Raycasting на ascii.
dcc0 05.07.2026
Попросил нейронную сеть deepai. org написать рейкастинг 3D с библиотекой ncurses для Linux. Чтобы можно было
ходить на стрелочки. Чтобы стены были отрисованы символами. Справилась.
Первый вариант. . .
|
Установка статуса документа по условию
Maks 05.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "НарядПутевка" разработанного в КА2.
Задача: в табличной части "Материалы" документа при записи автоматически устанавливать статус. . .
|
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет.
Но обычно это 50 лет и более.
Наверное, закисление почвы происходит сезонно в средней. . .
|
|
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
|
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS
Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
|
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи.
Через несколько переработок от PHP кода к C89 (надеюсь, 89).
Но довольно запутанно получилось. Код для Linux.
Но если убрать time и то, что с ним. . .
|
Сам себя обучал rest api
anaschu 02.07.2026
Педагогический лайфхак: Почему чистый REST API для ученика намного круче, чем готовые библиотеки
Когда мы отказались от капризного JAR-файла AnyLogic и переписали код на стандартный HttpClient,. . .
|