Переход от асма к си

Обсуждаем контроллеры компании Atmel.
Ответить
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18783
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

СЦБист писал(а):   A a;
убивал бы за такое :)))
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Реклама
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1337
Зарегистрирован: Сб июн 09, 2012 02:14:11
Откуда: ХАРЬКОВ

Сообщение СЦБист »

что сложно понять что это работает ?

жаль что вы не знаете что такое ссылки.

хотя откуда вам знать. в си их нету )))))
Реклама
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18783
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

да хватит тут уже нас с открытиями знакомить... давайте вернемся к теме топика вами же начатого.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 378
Зарегистрирован: Сб сен 19, 2009 07:02:19

Сообщение shindax »

СЦБист писал(а):..жаль что вы не знаете что такое ссылки.
хотя откуда вам знать. в си их нету )))))
А где тут ссылки-то? Я вот вижу простую работу с обычными указателями.
Реклама
Эиком - электронные компоненты и радиодетали
Говорящий с текстолитом
Аватара пользователя
Сообщения: 1525
Зарегистрирован: Чт июн 10, 2010 20:11:19

Сообщение COKPOWEHEU »

Оченя жаль что тут никто не понимает не Си не С++
Очень жаль что ты не знаешь не только С или С++, но даже русского языка.
Но ты задом не верти, я от тебя просто так не отстану, "спыцылыст по всему".
СЦБист писал(а):не путай си и с++. у них разные операторы выделения кучи.
Так как выглядит оператор "выделения кучи" на чистом Си?
Реклама
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2042
Зарегистрирован: Чт дек 27, 2012 20:46:09
Откуда: Болгария, г. Лом

Сообщение botchin »

Выделение кучи
Я так и не могу понять о чем въ здесь? Может мне не хватает понимание русского язъка? Но въ ни о чем не говорите.

Вот ответ на google твоему вопросу
Google.ru
Въбирай себе на вкус и давайте по теме. А то душу "кучами" засорили.
Лом - ето город в Болгарии, а не инструмент юстировки електроники.
Реклама
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 353
Зарегистрирован: Вс янв 19, 2014 22:41:55

Сообщение Siarzhuk »

СЦБист писал(а): А те кто понимают - то сразу поймут в чем аналогия.

Код: Выделить всё

[...]
struct A
[...]
void f(A *a) {cout<<")))))))))))))) "<<a<<" "<<a->x<<endl;}

int main() 
{
	A a;
[...]
}
В сюхе это не соберётся - потому как тип A не известен компилятору, не говоря о потоковом убожестве с его кривопо́́пыми операторами вывода. А в плюсах с таким-же успехом можно сделать f() методом структуры. Забавный метод искать аналогию между синонимами одной и той-же сущности.
Одновременным нажатием LIGHT и POWER, РП Sangean ATS-909X (ver 1.29) превращается в ATS-909XR! ;-)
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 353
Зарегистрирован: Вс янв 19, 2014 22:41:55

Сообщение Siarzhuk »

botchin писал(а):Я так и не могу понять о чем въ здесь? Может мне не хватает понимание русского язъка?
"Выделение кучи" - это резервирование памяти и создание инфраструктуры для работы с этой памятью по heap схеме. В МК производится как правило в startup части кода ещё до передачи управления в main(). Оппонент же имел ввиду "динамическое выделение блока памяти" которое имеет место во время нормального исполнения программы. Тем, кто желает реально чему-то научиться, подобные очевидные мелочи как правило прощаются, в конце концов для того и форум, чтобы делиться знаниями и помогать. А вот желающих посамоутверждаться не имея за душой элементарного знания базовых понятий ждёт КМБ и бесконечные зацепки к частностям. К людям - по человечески, а троллям - тро́́ллево.
По существу темы - нету никакого такого перехода - есть изучение сюхи с нуля. Потому как "рельсы в мозгах перекладывать надо". dixi
Одновременным нажатием LIGHT и POWER, РП Sangean ATS-909X (ver 1.29) превращается в ATS-909XR! ;-)
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2042
Зарегистрирован: Чт дек 27, 2012 20:46:09
Откуда: Болгария, г. Лом

Сообщение botchin »

Siarzhuk писал(а):В сюхе это не соберётся ......, не говоря о потоковом убожестве ....
Да и работа с потоками в етом виде (cout<<")))))))))))))) "<<a<<" "<<a->x<<endl) появилось впервъе в С++. В "чистом" С такое нет. Я впервъе встретил его (cout<<")))))))))))))) "<<a<<" "<<a->x<<endl) в Микрософт С7 (если паметь мне не изменяет) - первое С++ с Майкрософта.

Так, что если спорите про С++ и "чистом" С извольте примеръ писать как положено.

Давайте возвращайтесь к теме.
Лом - ето город в Болгарии, а не инструмент юстировки електроники.
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1337
Зарегистрирован: Сб июн 09, 2012 02:14:11
Откуда: ХАРЬКОВ

Сообщение СЦБист »

В Студии 4 хрень с типом char

по умолчанию оно принимает положительные числа от 0 до 255.

в Си и ++ это не так

Код: Выделить всё

char x = 0;
    x--;
    if (x < 0) 
    std::cout << (int)x;
проверенно экспериментально.

для перевода в знаковый тип надо писать

signed char
Говорящий с текстолитом
Аватара пользователя
Сообщения: 1525
Зарегистрирован: Чт июн 10, 2010 20:11:19

Сообщение COKPOWEHEU »

Очередные кулстори от нуба. Он не в курсе что размер char'а и наличие знака в Си не стандартизовано. И это тело что-то там вякает про незнание другими языка Си. Ну и вдруг кому пригодится (СЦБист'у все равно не хватит мозгов воспользоваться) флаг -fsigned-char / -funsigned-char.
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1337
Зарегистрирован: Сб июн 09, 2012 02:14:11
Откуда: ХАРЬКОВ

Сообщение СЦБист »

COKPOWEHEU сразу видно что вы не плавали в с с ++

тип чар - знаковый. тип unsigned char беззнаковый.

в студии тип чар беззнаковый. а signed char знаковый.

говорю сразу - я тебя учить не буду.
shindax писал(а):[q
А где тут ссылки-то? Я вот вижу простую работу с обычными указателями.

в си их нету
Говорящий с текстолитом
Аватара пользователя
Сообщения: 1525
Зарегистрирован: Чт июн 10, 2010 20:11:19

Сообщение COKPOWEHEU »

Ты совсем читать не умеешь? Повторяю: в Си размер и наличие знака у большинства стандартных типов данных (char, int) не стандартизовано. Оно может меняться в зависимости от компилятора.
в студии тип чар беззнаковый. а signed char знаковый.
То есть ты даже не знаешь какой компилятор используется Сутдией? Ты вообще хотя бы пару компиляторов (не путать с IDE) назвать можешь?
говорю сразу - я тебя учить не буду.
Еще не хватало чтобы такой двоечник меня учить пытался.
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1337
Зарегистрирован: Сб июн 09, 2012 02:14:11
Откуда: ХАРЬКОВ

Сообщение СЦБист »

COKPOWEHEU писал(а):Т в Си размер и наличие знака у большинства стандартных типов данных (char, int) не стандартизовано. .

что за лапша.

все что без приставки unsigned это знаковый тип.

и это стандарт. тогда бы нафик не нужны были б эти приставки.
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Сообщение Reflector »

СЦБист писал(а): все что без приставки unsigned это знаковый тип.

и это стандарт. тогда бы нафик не нужны были б эти приставки.
Т.е. про приставку signed ты даже не слышал?
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 353
Зарегистрирован: Вс янв 19, 2014 22:41:55

Сообщение Siarzhuk »

СЦБист писал(а):тип чар - знаковый. тип unsigned char беззнаковый.

в студии тип чар беззнаковый. а signed char знаковый.
char, unsigned char, signed char - это три отдельных типа. Знаковость первого зависит от желания тех, кто пилил используемый компилятор и, как правило, может быть изменено в настройках компилятора.
Одновременным нажатием LIGHT и POWER, РП Sangean ATS-909X (ver 1.29) превращается в ATS-909XR! ;-)
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 353
Зарегистрирован: Вс янв 19, 2014 22:41:55

Сообщение Siarzhuk »

СЦБист писал(а):
все что без приставки unsigned это знаковый тип.

и это стандарт.
Стандарт С с этим не согласен:
There are three character types, designated as char , signed char, and unsigned char.


Стандарт C++ ешё более многословен:
C++ Standard §3.9.1 Fundamental types

Objects declared as characters (char) shall be large enough to store any member of the implementation’s basic character set. If a character from this set is stored in a character object, the integral value of that character object is equal to the value of the single character literal form of that character. It is implementation-defined whether a char object can hold negative values. Characters can be explicitly declared unsigned or signed. Plain char, signed char, and unsigned char are three distinct types. [...]
Одновременным нажатием LIGHT и POWER, РП Sangean ATS-909X (ver 1.29) превращается в ATS-909XR! ;-)
Говорящий с текстолитом
Аватара пользователя
Сообщения: 1525
Зарегистрирован: Чт июн 10, 2010 20:11:19

Сообщение COKPOWEHEU »

Siarzhuk писал(а):Знаковость первого зависит от желания тех, кто пилил используемый компилятор и, как правило, может быть изменено в настройках компилятора.
Флаги типа char для gcc я даже приводил -fsigned-char и -funsigned-char но как и ожидалось, СЦБист не осилил.
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1337
Зарегистрирован: Сб июн 09, 2012 02:14:11
Откуда: ХАРЬКОВ

Сообщение СЦБист »

Может кому-то пригодится набор функций для установки , сброса, проверки битов .

правда для одно байтовых переменных, но если голова варит, то можно преобразовать и в

многобайтовые.

Код: Выделить всё

#define TRUE  1
#define FALSE 0


void Set_Bit(uint8_t *y, const uint8_t n)
{
       if (n > 7) return;       

       uint8_t x = 1;

	   x <<= n;

	   *y |= x;
}

void Reset_Bit(uint8_t *y, const uint8_t n)
{
       if (n > 7) return;       

       uint8_t x = 1;

	   x <<= n;

	   x = ~x;

	   *y &= x;  
     
}

uint8_t Proverka_Bit(const uint8_t *y, const uint8_t n)
{
       if (n > 7) return FALSE;       

       uint8_t x = 1;

	   x <<= n;

	   x &= *y;

	   if (x > 0) return TRUE; 

	   else return FALSE;  
}
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 353
Зарегистрирован: Вс янв 19, 2014 22:41:55

Сообщение Siarzhuk »

СЦБист писал(а):Может кому-то пригодится набор функций для установки , сброса, проверки битов .
Oui-i-i... Такую красоту разве что на www.radiokot.in оценят. ;-D
Одновременным нажатием LIGHT и POWER, РП Sangean ATS-909X (ver 1.29) превращается в ATS-909XR! ;-)
Ответить

Вернуться в «AVR»