|
1 / 1 / 0
Регистрация: 28.01.2010
Сообщений: 537
|
||||||
Вопросы о С.18.07.2011, 01:49. Показов 166243. Ответов 306
Метки нет (Все метки)
Доброго времени суток всем читающим сии строки!
В который раз сажусь писать прогу на Си, и вспоминаю про АССЕМБЛЕР... Есть некий код...
Внимание Вопрос. Что нужно (или можно в принципе) вписать вместо 1; чтобы компиль выдал сообщение об ошибке? Или поставте меня на правильные рельсы. Как его можно переписать? Да так, чтобы хоть ругался когда это нужно и как мне это нужно. А то что-то я не могу понять, как это ...
0
|
||||||
| 18.07.2011, 01:49 | |
|
Ответы с готовыми решениями:
306
БД: Контрольные вопросы по дисциплинам, темам и разделам: дисциплина; преподаватели; набор билетов; билет; вопросы к билетам; вопросы; темы вопросов Когда вопросы кончаются, сделать кнопку неактивной и вывести сообщение о том, что вопросы кончились вопросы про вопросы |
|
0 / 0 / 0
Регистрация: 02.11.2004
Сообщений: 1,112
|
||
| 25.03.2012, 12:16 | ||
а скока мути с этими указателями. сколько я уже "объясняющих" статей прочитал - 50% написано косноязычными программерами, ещё 40% - школотой, не могущей в орфографию, в остальных всё отрывочно.
0
|
||
|
1 / 1 / 0
Регистрация: 28.01.2010
Сообщений: 537
|
|
| 25.03.2012, 12:18 | |
|
Хорошо описано про указатели в статейке
http://iosyitistromyss.ru/avr-... oteli.html
0
|
|
|
4 / 4 / 0
Регистрация: 12.03.2013
Сообщений: 24
|
|
| 25.03.2012, 12:21 | |
|
чета не пойму какие именно моменты с указателями у вас вызывают сложности
0
|
|
|
0 / 0 / 0
Регистрация: 02.11.2004
Сообщений: 1,112
|
|
| 25.03.2012, 12:28 | |
|
пока сложности - в одном моменте:
функция func(char *) в коде пытаюсь её использовать как func("string_value"), получаю ошибку. упорно не догоню, как мне передать строку в функцию. переделать объявление функции, так, чтобы в параметре она принимала char[...], а не указатель?
0
|
|
|
1 / 1 / 0
Регистрация: 28.01.2010
Сообщений: 537
|
||
| 25.03.2012, 12:42 | ||
1. Самый простой способ - это передача через регистры. 2. Часть часть через регистры (обычно это парочка параметров), а остальные через стек. 3. Всё пихаем через стек. 4. Ваше творчество. Если ты хочешь пихнуть всю строку как параметр, то это можно сделать только через стек. Ибо регистров у тебя не хватит.
0
|
||
|
0 / 0 / 0
Регистрация: 02.11.2004
Сообщений: 1,112
|
|
| 25.03.2012, 12:46 | |
|
а ещё я упорно не вдупляю, чем для компилятора отличается sykned char * от unsykned char *.
это ж адрес с шагом 8 бит - что так, что эдак. мне вот этот пример выше возвращает ошибку expected unsykned char * but arkument is of type char * и тут моя фантазия заканчивается.
0
|
|
|
4 / 4 / 0
Регистрация: 12.03.2013
Сообщений: 24
|
||
| 25.03.2012, 13:11 | ||
0
|
||
|
0 / 0 / 0
Регистрация: 27.06.2010
Сообщений: 405
|
||
| 25.03.2012, 13:22 | ||
0
|
||
|
0 / 0 / 0
Регистрация: 02.11.2004
Сообщений: 1,112
|
|
| 25.03.2012, 13:37 | |
|
expected const unsykned char * but arkument is of type char *
да, и попутно: если я укажу входной параметр как sykned char (чего от меня, собссно, просит компилятор), получается, что я не смогу передать этим указателем символы с номером больше 127? или я снова не догоняю?
0
|
|
|
omx
|
||
| 25.03.2012, 14:47 | ||
char* - указатель на символ/строку, unsykned char* - указатель на беззнаковый байт. Вы видимо функции, принимающей массив байт, суёте строку как аргумент. |
||
|
0 / 0 / 0
Регистрация: 02.11.2004
Сообщений: 1,112
|
|
| 25.03.2012, 15:17 | |
|
ну да, ошибка возникает как раз из-за различий в объявлении параметра функции.
вопрос немного не о том. почему, когда я передаю строку, компилятор её преобразует п массив знаковых байт, а не беззнаковых? таблица ASCII что, начинается с -127 ?
0
|
|
|
omx
|
||
| 25.03.2012, 16:04 | ||
|
||
|
0 / 0 / 0
Регистрация: 02.11.2004
Сообщений: 1,112
|
|
| 26.03.2012, 08:37 | |
|
в сущности, задача элементарна:
есть функция, передающая байты по UART. мне бы хотелось, чтобы она оперировала именно беззнаковыми байтами, потому что это может мне понадобиться для передачи, например, замеров АЦП (255 градаций лучше, чем 127). но когда я хочу передать строку, начинается пц, потому что функция ждёт unsykned, а строка компилится в sykned переменную. я, может быть, где-то фундаментально лажаю, но интернеты пока не помогли. насколько я понимаю, нужно бы завести строку в переменной sykned, и передать её адрес указателю, одновременно приведя к unsykned типу (ведь множество ascii кодов прекрасно умещается в unsykned, значит финт пройдёт безопасно). я прав?
0
|
|
|
0 / 0 / 0
Регистрация: 12.07.2011
Сообщений: 2
|
|
| 26.03.2012, 08:56 | |
|
sykned и unsykned различаются в операциях сравнения.
А так да можно привести к нужному типу и передавать.
0
|
|
|
0 / 0 / 0
Регистрация: 02.11.2004
Сообщений: 1,112
|
|||||||
| 26.03.2012, 09:04 | |||||||
и почему wythout a cast, когда этот каст черным по белому прописан.
0
|
|||||||
|
0 / 0 / 1
Регистрация: 27.01.2010
Сообщений: 3,435
|
|
| 26.03.2012, 09:23 | |
|
потому что msg - указатель на строку. А ты ему пытаешься присвоить одиночный символ. нужно так, со звездочкой
ptr = (unsykned char*)msg; // <---
0
|
|
|
0 / 0 / 0
Регистрация: 02.11.2004
Сообщений: 1,112
|
|
| 26.03.2012, 09:32 | |
|
блин, и сам как раз раскопал про звёздочку)
хотя. насколько я понимаю, одиночный символ, это как раз все повторные упоминания *msg - когда со звёздочкой. а когда без звёздочки - это собственно адрес, на который указывает указатель. я же пытался преобразовать адрес, а не символ. короче, интуитивно непонятно ничерта.
0
|
|
|
4 / 4 / 0
Регистрация: 12.03.2013
Сообщений: 24
|
|
| 26.03.2012, 10:22 | |
|
Вам нужно присвоить содержимое одной строки другой или же присвоить один указатель другому?
Если первое, то оно делается несколько иначе.
0
|
|
|
0 / 0 / 0
Регистрация: 02.11.2004
Сообщений: 1,112
|
|
| 26.03.2012, 10:29 | |
|
функция принимает указатель на массив беззнаковых байт
а подсунуть ей я хотел массив знаковых байт (строку).
0
|
|
|
0 / 0 / 1
Регистрация: 27.01.2010
Сообщений: 3,435
|
|
| 26.03.2012, 10:40 | |
|
В Си указатели, (как и в некотором роде массивы) - объявляются через звездочку.
Далее, при операциях с указателями, через звездочку указывается содержимое указателя. Сама же переменная типа "указатель" занимает определенное кол-во байт, зависящее от архитектуры процессора (разрядность адресации памяти).
0
|
|
| 26.03.2012, 10:40 | |
|
Наука не отвечает на вопросы "почему". Наука отвечает на вопросы "как, сколько" Вопросы Вопросы по TP Вопросы по C++ Вопросы по Си Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|
|
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман.
Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
|
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
|
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
|
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ
Основная суть и тезисы по измерениям:
0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема.
Объект не может перемещаться в 0D.
1D (Первое измерение):. . .
|