Цитата(LeoLabs @ May 18 2005, 08:09)
...
И первый вопрос: - я организовал массив в СИ, с начальным адресом 0х100 и длиной 256 - чар : "__no_init unsigned char MyBuffer [256]@0x100;" - идея сделать кольцевой буффер, для простой работой с указателями (простой инкремент младшего байта указателя), с ним я работаю как в СИ, так и в ассемблере. ?? - как сделать инкремент младшего байта указателя в СИ? и вообще работать только с младшим байтом?
Сразу несколько неверных, на мой взгляд, подходов (очевидно, перенятых из техники программирования на низкои уровне, но даже там это плохо):
1 - указывать вручную размещение - плохо (непереносимо, гнездилище багов, ограничение возможностей оптимизации, ...);
2 - работать с частью указателя (как и любого другого целостного объекта) - плохо по тем же причинам.
Естественно, если этих трюков не делать - возникает оверхед. При этом надо взвесить, стОит ли такой геморрой свеч ради экономии 5% времени и объёма кода. Ведь если сильно поджимает, а это бывает КРАЙНЕ редко, то можно и кварц побыстрее поставить и МК помощнее взять.