Заголовок сообщения: Re: преобразование типа char в long int
Добавлено: Ср мар 03, 2021 11:33:55
Родился
Зарегистрирован: Пн мар 01, 2021 05:19:23 Сообщений: 8
Рейтинг сообщения:0
Чем не нравится long int? А вообще если нужны чары, то делай просто:
Код:
#pragma pack(push, 1) union char_to_long { struct { char c1; char c2; char c3; char c4; } chars; long int value; } #pragma pack(pop)
И работай с этим как с отдельными символами, так и целиком с числом. Инкрементишь число, читаешь символы. Поля структуры ссылаются на один кусок памяти.
Всем привет. Скажите как преобразовать тип данных char в long int?
вот пример:
Код:
#include <tiny2313a.h> volatile char counter=0;
суть такова: переменную "counter" можно было бы инкрементировать до 200000.
1. Открыть исходный текст программы в текстовом редакторе. 2. Исправить тип в объявлении переменной с `char` на `long int`. 3. Заодно исправить грубую ошибку с типом возвращаемого значения функции `main`: не `void`, а `int`. 4. Сохранить исходный текст программы 5. Перекомпилировать программу 6. Готово!
Никакого другого способа, чтобы "можно было бы инкрементировать до 200000", нет и быть не может.
3. Заодно исправить грубую ошибку с типом возвращаемого значения функции `main`: не `void`, а `int`.
Ух ты, как на летел то, а не что, если в cvavr пишется именно void main(void)?
KorbenDallas писал(а):
6. Готово!
А что, если есть какая-то функция, которая принимает тип char, знаковый тип, а теперь попробуйте затрамбовать ваш long int в эту функцию и желательно за один заход, учитывая знак (условие, функцию нельзя переписывать)?
Качественное и безопасное устройство, работающее от аккумулятора, должно учитывать его физические и химические свойства, профили заряда и разряда, их изменение во времени и под влиянием различных условий, таких как температура и ток нагрузки. Мы расскажем о литий-ионных аккумуляторных батареях EVE и нескольких решениях от различных китайских компаний, рекомендуемых для разработок приложений с использованием этих АКБ. Представленные в статье китайские аналоги помогут заменить продукцию западных брендов с оптимизацией цены без потери качества.
а не что, если в cvavr пишется именно void main(void)?
Кем "пишется"? В cvavr, как и везде, пишется именно `int main`? А то, что какой-то компилятор традиционно закрывает глаза на `void main` не является поводом этим пользоваться. Зачем?
которая принимает тип char, знаковый тип, а теперь попробуйте затрамбовать ваш long int в эту функцию и желательно за один заход,
Никто даже и пытаться не будет заниматься подобной бессмыслицей. Если функция принимает тип char, то она принимает тип char. Ни о чем другой речи и быть не может. (По-прежнему, однако, не ясно, что это делает в этой теме и какое отношение имеет к заданному вопросу.)
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Если функция принимает тип char, то она принимает тип char. Ни о чем другой речи и быть не может. (По-прежнему, однако, не ясно, что это делает в этой теме и какое отношение имеет к заданному вопросу.)
вам пытались указать на то, что изменение типа переменной недостаточно, потому как переменная нового типа, переданная в неизмененную функцию (вы ведь не предлагали изменить исходник где-то еще), не даст никакого видимого результата - в функцию, которая ждет char даже из переменной long int больше 255 передать не выйдет.
короче, ваш совет - в топку: он хоть и простой, как три копейки, но и стоит не больше.
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
вам пытались указать на то, что изменение типа переменной недостаточно, потому как переменная нового типа, переданная в неизмененную функцию (вы ведь не предлагали изменить исходник где-то еще), не даст никакого видимого результата - в функцию, которая ждет char даже из переменной long int больше 255 передать не выйдет.
Нет, конечно. Не нужно выдумывать сущности, если единственной их целью является раздувание флуда в форуме. Внимательно читайте вопрос и старайтесь не выходить за рамки топика. Никакая "передача в функцию" в этой теме не участвует и никого тут не интересует. Тот кто "пытался указать" - он ошибся и ляпнул не подумав. Он уже и сам понял.
короче, ваш совет - в топку: он хоть и простой, как три копейки, но и стоит не больше.
Мой "совет" - единственно возможный ответ на поставленный вопрос, даже (!) если принимать во внимание некие выдуманные "функции". Поэтому не "в топку", а совсем наоброт: своим ответом выше я тему исчерпал и закрыл. Никаких других вариантов тут не будет.
Что, собственно, было понятно с самого начала, до моего появления в теме, но вот умудрились же на ровном месте нафлудить на две страницы белиберды...
Мой "совет" - единственно возможный ответ на поставленный вопрос, даже (!) если принимать во внимание некие выдуманные "функции".
вас совет из категории "не перебегай ЗДЕСЬ через дорогу - это опасно", хотя на самом деле правильный совет слово "здесь" должен исключить. а так да, в конкретно этом случае по-вашему сделать можно. но наивно полагать, что это чему-либо кого-либо может научить, т.е. исключить повторение проблемы в будущем.
и, кстати, если принимать во внимание некие выдуманные функции, то ваш совет красиво демонстрирует свою фтопочную сущность:
Код:
char var; void foo(char x){ printf("%d", x); }
int main(void){ var = 1; while(var++) foo(var); }
по вашему совету изменение типа переменной var никак не изменит выводимые числа - они как были в пределах 0-255, так и останутся, хотя изменит их количество . но я мог бы этого и не говорить...
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
Мне кажется, народ, что я разговариваю с софтверным ботом: он просто непрерывно дылдонит одно и то же по кругу из сообщения в сообщение, не обращая ни на что внимания.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 37
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения