-
- получилось, сделал так: zx_(143 знак., 26.04.2010 15:30)
- Только не забывайте, что после такого объявления данные переменные перед их использованием нужно инициализировать явными значениями (или обнулять) "вручную". - rezident(26.04.2010 16:50)
- А при включении оптимизации не выкинуло все нафиг? ;) Dir(391 знак., 26.04.2010 16:03 - 16:09)
- на __root компилятор поругался... zx_(230 знак., 26.04.2010 16:14)
- не злоупотребляйте абсолютной адрессацией. Если цель - просто расположить в определённом порядке, используйте структуры - koyodza(26.04.2010 15:34)
- что-то я не помню что в стандарте Си гарантируется расположение элементов структуры строго последовательно в памяти. для массивов - прямо сказано - "гарантируется", а для структур вроде нет. - Snaky(27.04.2010 03:23)
- В базовом определении структуры действительно ничего не сказано про порядок данных. Но среди возможных операций над структурами есть операция передачи данных структуры в функцию по указателю на первый элемент структуры. Т.е. она передается как массив, AST(71 знак., 27.04.2010 10:49)
- в функцию можно передать указатель на объект любого типа - это еще ничего не значит. должно быть однозначно оговорено в стандарте "да" или "нет". Snaky(512 знак., 27.04.2010 11:29)
- Не болтайте ерундой, все элементы структуры располагаются строго последовательно в порядке объявления, хотя и допустимо выравнивание. Структуры могут копироваться, передаваться по значению и возвращаться из функций. =AlexD=(69 знак., 27.04.2010 12:00)
- я высказал сомнение, но не утверждал. нашел, впрочем, в стандарте: Snaky(399 знак., 27.04.2010 13:11)
- Не болтайте ерундой, все элементы структуры располагаются строго последовательно в порядке объявления, хотя и допустимо выравнивание. Структуры могут копироваться, передаваться по значению и возвращаться из функций. =AlexD=(69 знак., 27.04.2010 12:00)
- в функцию можно передать указатель на объект любого типа - это еще ничего не значит. должно быть однозначно оговорено в стандарте "да" или "нет". Snaky(512 знак., 27.04.2010 11:29)
- В базовом определении структуры действительно ничего не сказано про порядок данных. Но среди возможных операций над структурами есть операция передачи данных структуры в функцию по указателю на первый элемент структуры. Т.е. она передается как массив, AST(71 знак., 27.04.2010 10:49)
- что-то я не помню что в стандарте Си гарантируется расположение элементов структуры строго последовательно в памяти. для массивов - прямо сказано - "гарантируется", а для структур вроде нет. - Snaky(27.04.2010 03:23)
- В ИАРе это делается так: AST(161 знак., 26.04.2010 14:42 - 14:52)
- Чистые С и С++ это принципиально не позволяют. Т.к. там вообще нет такого понятия как ОЗУ. Какой конкретно МК и среда интересует? Dir(110 знак., 26.04.2010 14:33 - 14:46)
- среда iar, контроллер msp430. zx_(75 знак., 26.04.2010 14:42)
- Если имеет значение только порядок расположения переменных в памяти, то воспользуйтесь объявлением структуры AST(85 знак., 26.04.2010 14:51)
- переменные расположились так: zx_(60 знак., 26.04.2010 15:23)
- #pragma pack(push,1) koyodza(59 знак., 26.04.2010 15:26 - 15:30)
- Хотелось бы структуру использовать, но прагмы поставил, а адреса переменных остались те же. - zx_(26.04.2010 15:38 - 15:41)
- а как смотрите адреса? Что-то не то: я всегда пользуюсь этим, всё работает. И с 51, и с АРМом, и с авр. Под мсп давно ничего не делал, но проблем быть не должно - koyodza(26.04.2010 15:48)
- адреса смотрю в симуляторе в окне memory - zx_(26.04.2010 16:03)
- Все правильно, компилятор сделал выравнивание. 16-ти битные переменные могут располагаться только по четным адресам в этой архитектуре. AST(145 знак., 26.04.2010 16:28)
- для интереса попробовал: zx_(90 знак., 26.04.2010 17:07)
- Что-то здесь не чисто AST(298 знак., 26.04.2010 17:17)
- ой, точно, так и есть. исправил и все получилось. спасибо. - zx_(26.04.2010 17:29)
- Что-то здесь не чисто AST(298 знак., 26.04.2010 17:17)
- для интереса попробовал: zx_(90 знак., 26.04.2010 17:07)
- Все правильно, компилятор сделал выравнивание. 16-ти битные переменные могут располагаться только по четным адресам в этой архитектуре. AST(145 знак., 26.04.2010 16:28)
- адреса смотрю в симуляторе в окне memory - zx_(26.04.2010 16:03)
- а как смотрите адреса? Что-то не то: я всегда пользуюсь этим, всё работает. И с 51, и с АРМом, и с авр. Под мсп давно ничего не делал, но проблем быть не должно - koyodza(26.04.2010 15:48)
- Хотелось бы структуру использовать, но прагмы поставил, а адреса переменных остались те же. - zx_(26.04.2010 15:38 - 15:41)
- #pragma pack(push,1) koyodza(59 знак., 26.04.2010 15:26 - 15:30)
- переменные расположились так: zx_(60 знак., 26.04.2010 15:23)
- Если имеет значение только порядок расположения переменных в памяти, то воспользуйтесь объявлением структуры AST(85 знак., 26.04.2010 14:51)
- среда iar, контроллер msp430. zx_(75 знак., 26.04.2010 14:42)
- получилось, сделал так: zx_(143 знак., 26.04.2010 15:30)