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

 
 
> Подскажите, в чем может быть ошибка?
Sirko
сообщение Dec 16 2010, 19:23
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 245
Регистрация: 15-08-07
Пользователь №: 29 795



Не получается скомпилировать вот это.

main.cpp
Код
#include <avr/pgmspace.h>

#ifdef __cplusplus
#define extern "C"
#endif

typedef struct PROGMEM{
    const int    X;    
    const char  Text[];
}Q;

int main(){
    Q  q1 = {0, "qqqq"};  // 13
    Q  q2 = {0, {0x00}};  // 14
    return 0;
}


Компилятр AVR-GCC, makefile студийный.
Ошибки ссылаются на строки объявления переменных q1 и q2:

Build started 17.12.2010 at 00:17:42
avr-g++ -mmcu=atmega128 -Wall -gdwarf-2 -Os -std=gnu99 -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT main.o -MF dep/main.o.d -c ../main.cpp
cc1plus.exe: warning: command line option "-std=gnu99" is valid for C/ObjC but not for C++
../main.cpp: In function 'int main()':
../main.cpp:13: error: initializer-string for array of chars is too long
../main.cpp:14: error: too many initializers for 'const char [0]'
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
sigmaN
сообщение Dec 17 2010, 17:42
Сообщение #2


I WANT TO BELIEVE
******

Группа: Свой
Сообщений: 2 617
Регистрация: 9-03-08
Пользователь №: 35 751



может так?
Код
typedef struct PROGMEM{
    const int    X;    
    const char  *Text;
}Q;

Q q2 = {0, "VASYA))"};

компилятор положит строку VASYA себе в константы, а указателю присвоит адрес на первый символ.



--------------------
The truth is out there...
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Sirko   Подскажите, в чем может быть ошибка?   Dec 16 2010, 19:23
- - alexeyv   Откуда компилятор знает размер вашего типа? В опре...   Dec 17 2010, 01:50
- - Sirko   ЦитатаОткуда компилятор знает... Логично. Буду ис...   Dec 17 2010, 14:01
- - DpInRock   Я конечно, в сях не специалист. Но вот как это в а...   Dec 17 2010, 17:43
- - Sirko   Дело все в том, что мне необходимо текст отображат...   Dec 17 2010, 17:59
- - DpInRock   Правильно. Зачем искать простой путь и инициализир...   Dec 17 2010, 20:07
- - sigmaN   Цитатато, что обычно делается вот так text = ...   Dec 19 2010, 11:11
|- - demiurg_spb   Цитата(sigmaN @ Dec 19 2010, 17:11) Кодty...   Dec 19 2010, 16:17
- - sigmaN   аххх во флеше... вот блин. мой косяк.   Dec 19 2010, 17:46
- - Sirko   Доброго времени суток. Спасибо за дискуссию. Хоть...   Dec 19 2010, 17:47
|- - Dog Pawlowa   Цитата(Sirko @ Dec 19 2010, 23:47) Возмож...   Dec 19 2010, 19:36
|- - mdmitry   Цитата(Dog Pawlowa @ Dec 20 2010, 01:36) ...   Dec 21 2010, 07:12
- - sigmaN   а давай-те ка сюда кусок кода побольше... чтоб мож...   Dec 19 2010, 18:27
- - ARV   блин, сколько шуму из-за обычной перекодировки рус...   Dec 21 2010, 07:19


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

 


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


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