реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> IAR озадачил ..., ...a может лыжи не едут
Master
сообщение Jun 1 2006, 13:23
Сообщение #1


Частый гость
**

Группа: Новичок
Сообщений: 170
Регистрация: 26-05-05
Из: Москва
Пользователь №: 5 405



После вставки нижеследующего кода возникает ошибка:
Цитата
Internal Error: [PaType - MemoryAttribute]: no memory attribute set

А код вот такой:
Код
struct    tTest {
    union {
        struct tInner {
            BYTE    bA;
            BYTE    bB;
            BYTE    bC;
            BYTE    bD;
        } Inner;
        UINT    uiABCD;
    };
    tTest()
    {
        uiABCD = 0;
    }
};

tTest Test;

void func( void )
{
    BYTE*    array = (BYTE*)&Test.Inner.bA;
    array[ 0 ] = 0;
}
У кого какие мысли?

P.S. IAR C v4.31a, AT91SAM7S64.
Go to the top of the page
 
+Quote Post
DASM
сообщение Jun 1 2006, 13:27
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 3 644
Регистрация: 28-05-05
Пользователь №: 5 493



это плюсовый код ?
Go to the top of the page
 
+Quote Post
Master
сообщение Jun 1 2006, 13:31
Сообщение #3


Частый гость
**

Группа: Новичок
Сообщений: 170
Регистрация: 26-05-05
Из: Москва
Пользователь №: 5 405



Цитата(DASM @ Jun 1 2006, 16:27) *
это плюсовый код ?

Не совсем понял вопроса. Комилируюсь под Extended Embedded C++.

Сообщение отредактировал Master - Jun 1 2006, 13:32
Go to the top of the page
 
+Quote Post
DASM
сообщение Jun 1 2006, 13:37
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 3 644
Регистрация: 28-05-05
Пользователь №: 5 493



а tTest() что в описании структуры делает ? Это конструктор ?
Go to the top of the page
 
+Quote Post
Master
сообщение Jun 1 2006, 13:39
Сообщение #5


Частый гость
**

Группа: Новичок
Сообщений: 170
Регистрация: 26-05-05
Из: Москва
Пользователь №: 5 405



Цитата(DASM @ Jun 1 2006, 16:37) *
а tTest() что в описании структуры делает ?

Как обычно, выполняется при объявлении структуры.
Go to the top of the page
 
+Quote Post
DASM
сообщение Jun 1 2006, 13:42
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 3 644
Регистрация: 28-05-05
Пользователь №: 5 493



ну тады ой. К мен я компилируются. Если BYTE и UINT по-человечески объявлены
Go to the top of the page
 
+Quote Post
Master
сообщение Jun 1 2006, 13:55
Сообщение #7


Частый гость
**

Группа: Новичок
Сообщений: 170
Регистрация: 26-05-05
Из: Москва
Пользователь №: 5 405



Цитата(DASM @ Jun 1 2006, 16:42) *
ну тады ой. К мен я компилируются. Если BYTE и UINT по-человечески объявлены

Ясно. Роем дальше.
Но меня-то как раз интересовала ошибка, выданная компилером. Что она означает?
Go to the top of the page
 
+Quote Post
Master
сообщение Jun 2 2006, 09:51
Сообщение #8


Частый гость
**

Группа: Новичок
Сообщений: 170
Регистрация: 26-05-05
Из: Москва
Пользователь №: 5 405



Цитата(Master @ Jun 1 2006, 16:55) *
Цитата(DASM @ Jun 1 2006, 16:42) *

ну тады ой. К мен я компилируются. Если BYTE и UINT по-человечески объявлены

Ясно. Роем дальше.
Но меня-то как раз интересовала ошибка, выданная компилером. Что она означает?

Дело было не в бобине.
Но если вдруг кому-нибудь встретится такая ошибка компилера, расскажу про свою ситуацию.
Я хотел объявить константу в классе и проинициализировать её значением. Указанную ошибку компилер выдал после следующего текста:
Код
class clBB {
public:
    clBB();
private:
    char                m_FileName[ 13 ];    
};

clBB::clBB() : m_FileName( "bb.txt" )
{}

Короче говоря, я слегка перемудрил. А оказалось достаточно объявить const char* m_FileName и в конструкторе проинициализировать строкой m_FileName = "bb.txt";
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 27th July 2025 - 09:01
Рейтинг@Mail.ru


Страница сгенерированна за 0.0137 секунд с 7
ELECTRONIX ©2004-2016