Работа с глобальным массивом внутри функции

Clampo
Clampo аватар
Offline
Зарегистрирован: 03.08.2013

ЕвгенийП пишет:

Вы действительно полагаете, что Вам здесь все должны?

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

А вы серьезно думаете, что помогаете людям?

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Эпиграф: "Примерно во времена Домициана в Римк жил такой греческий филосов-стоик Эпиктет. Ему приписывают замечательный совет вcем, кто хочет чему-то научиться: «Если хочешь учиться, будь готов считаться дураком и тупицей»"

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

всё-таки обьясни, мне, скудоумному, зачем из одного байта делать 8? 

Clampo
Clampo аватар
Offline
Зарегистрирован: 03.08.2013

DetSimen пишет:

всё-таки обьясни, мне, скудоумному, зачем из одного байта делать 8? 

что бы потом работать с каждым отдельно.

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017
//  обьявление

#pragma pack(push,1)

struct TByte {
	bool Bit0 : 1;
	bool Bit1 : 1;
	bool Bit2 : 1;
	bool Bit3 : 1;
	bool Bit4 : 1;
	bool Bit5 : 1;
	bool Bit6 : 1;
	bool Bit7 : 1;
};

#pragma pack(pop)

union TBitsMask {
	uint8_t   Value;
	TByte	  Mask;
};

TBitsMask ByteMask;


//    работа с 


	ByteMask.Value = Wire.read(); // здесь у тебя все раскладёца по битам отоматически

	if (ByteMask.Mask.Bit4) { // проверяй потом, да пей
		do_smth();
	}

 

и, главна, никаких цыклов, всё на уровне языка образца 1979 года. :)  по которому ты ни одной книги почитать не хочешь. 

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

жду от тебя картинку 

Clampo
Clampo аватар
Offline
Зарегистрирован: 03.08.2013

DetSimen пишет:

//  обьявление

#pragma pack(push,1)

struct TByte {
	bool Bit0 : 1;
	bool Bit1 : 1;
	bool Bit2 : 1;
	bool Bit3 : 1;
	bool Bit4 : 1;
	bool Bit5 : 1;
	bool Bit6 : 1;
	bool Bit7 : 1;
};

#pragma pack(pop)

union TBitsMask {
	uint8_t   Value;
	TByte	  Mask;
};

TBitsMask ByteMask;


//    работа с 


	ByteMask.Value = Wire.read(); // здесь у тебя все раскладёца по битам отоматически

	if (ByteMask.Mask.Bit4) { // проверяй потом, да пей
		do_smth();
	}

 

и, главна, никаких цыклов, всё на уровне языка образца 1979 года. :)  по которому ты ни одной книги почитать не хочешь. 

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

 

Clampo
Clampo аватар
Offline
Зарегистрирован: 03.08.2013

От того что этот код рабочий как он работает я не пойму пока сам не дойду.

b707
Онлайн
Зарегистрирован: 26.05.2017

Clampo пишет:

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

 

понял?

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

ну, доходи, канешна, о чем разговор. 

Clampo
Clampo аватар
Offline
Зарегистрирован: 03.08.2013

да.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Clampo пишет:

А вы серьезно думаете, что помогаете людям?

Да.

Однако, я не считаю это своей обязанностью.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

b707 пишет:

Clampo пишет:

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

понял?

Конечно, нет, Вы сами не видите? :(

xDriver
xDriver аватар
Offline
Зарегистрирован: 14.08.2015

Дед, код дал, ща он стакан попросит що-бы разобраться :)

ua6em
ua6em аватар
Онлайн
Зарегистрирован: 17.08.2016

xDriver пишет:

Дед, код дал, ща он стакан попросит що-бы разобраться :)

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

Clampo
Clampo аватар
Offline
Зарегистрирован: 03.08.2013

почему структуру не объявить сразу в объединении? из-за упорядочивания?

astwo
Offline
Зарегистрирован: 10.07.2019

Clampo пишет:

почему структуру не объявить сразу в объединении? из-за упорядочивания?


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

Clampo
Clampo аватар
Offline
Зарегистрирован: 03.08.2013

astwo пишет:
Clampo пишет:

почему структуру не объявить сразу в объединении? из-за упорядочивания?

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

Это из опыта получено? В книжках умных по-другому. Все вместе.

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Можно и вместе, тока про выравнивание не забыть

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

xDriver пишет:

Дед, код дал, ща он стакан попросит що-бы разобраться :)

Не попрошу, у меня есть. 

Clampo
Clampo аватар
Offline
Зарегистрирован: 03.08.2013

DetSimen пишет:

Можно и вместе, тока про выравнивание не забыть

т.е. отличие только в читабельности?

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Я не сторонник пхать все в одну кучу. Привычка, штоль, дурацкая...

xDriver
xDriver аватар
Offline
Зарегистрирован: 14.08.2015

DetSimen пишет:

xDriver пишет:

Дед, код дал, ща он стакан попросит що-бы разобраться :)

Не попрошу, у меня есть. 

нда..., да я знаю шо есть, я вижу ты уже и накатил:)

p.s. эт я тебе писал.

b707
Онлайн
Зарегистрирован: 26.05.2017

Clampo пишет:

DetSimen пишет:

Можно и вместе, тока про выравнивание не забыть

т.е. отличие только в читабельности?

"выравнивание" совсем другое имеется в виду, речь не про отступы в тексте :)

Выравнивание данных в памяти программы по границам байтов или слов

Clampo
Clampo аватар
Offline
Зарегистрирован: 03.08.2013

b707 пишет:

Clampo пишет:

DetSimen пишет:

Можно и вместе, тока про выравнивание не забыть

т.е. отличие только в читабельности?

"выравнивание" совсем другое имеется в виду, речь не про отступы в тексте :)

Выравнивание данных в памяти программы по границам байтов или слов

Спасибо, я это понял по наличию соответствующих параметров.)

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

DetSimen пишет:

#pragma pack(push,1)
...
#pragma pack(pop)

__attribute__ ((packed))

Мы ж этта, вроде GCC пользуем? Нада сацветсвовать! ;))))

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

wdrakula пишет:

__attribute__ ((packed))

Я даж таких слов не знаю. 

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

DetSimen пишет:

wdrakula пишет:

__attribute__ ((packed))

Я даж таких слов не знаю. 

Дык не Б..ги в гранит отливают! Прстите...

MaksVV
Offline
Зарегистрирован: 06.08.2015

имхо, если про один байт. Дак ТСу проще про ардуиновские bitRead() bitWrite() посмотреть. и  как всегда к середине темы истинные хотения у ТС поменялись. 

SLKH
Offline
Зарегистрирован: 17.08.2015

MaksVV пишет:

имхо, если про один байт. Дак ТСу проще про ардуиновские bitRead() bitWrite() посмотреть. и  как всегда к середине темы истинные хотения у ТС поменялись. 

bitRead(), bitSet() и прочие подобные конструкции не пользуются популярностью на этом форуме. Слишком они  просты  и понятны.