Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Имею желание объявить массив строк с переменной длиной
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > IAR
Страницы: 1, 2
_Bill
Цитата(GetSmart @ Aug 3 2006, 09:40) *
_Bill
Скорее даже исполнились мои самые лучшие ожидания.

Ну и замечательно!!!
zltigo
Цитата(GetSmart @ Aug 3 2006, 02:23) *
Цитата(zltigo)
Если можно, то без подобных проявлений эмоций - у меня к ним идиосинкразия с некоторых пор.
Конечно можно. Как и без 'лохов' тоже можно было.


Вот и без 'лохов' ТОЖЕ. Это определение к Вам здесь не употреблялось, а именно Ваш стиль общения
у меня, увы, теперь вызывает :-( некоторые ассоциации с нашим seeаttack.
Он заходя на форумы задавал невнятные вопросы после ответов заявлял, что все это и так знал и зачастую не поняв ответа рекомендовал всем учиться, выдавал краткую характеристику участикам и удалялся обещая вернуться с лекцией о зимовке раков. Упаси Бог, я Вас с ним НЕ РОВНЯЮ, но некоторые ассоциации вызывающие дискомфорт в общении в таком стиле у меня есть.
Прежде всего, если задали вопрос - сочтите за труд выслушать и ПОНЯТЬ ответ. А не дав себе труда даже разобратся бросаться подобными репликами:
Цитата
zltigo
Вы бы сами почитали книжку. Ну или поспорили с компилятором. Потому как ему не нравися ваше второе описание. Это то, которое и rezident предложил.

В ответ на совершенно правильную рекомендацию по вопросу:
Цитата
Только ещё одын маленький вопрос:
Как вставить первым байтом число?

, которой Вы даже не сумели воспользоваться.
Код
char string[] =
{    100,101,102,"eprst"

};
GetSmart
Цитата(zltigo)
, которой Вы даже не сумели воспользоваться.
Код
char string[] =
{    100,101,102,"eprst"

};

А это должно работать? У меня в компилере не работает почему-то.

Цитата
Вот и без 'лохов' ТОЖЕ. Это определение к Вам здесь не употреблялось, а именно Ваш стиль общения
у меня, увы, теперь вызывает :-( некоторые ассоциации с нашим seeаttack.
На счёт 'лохов' - я знаю. Только укажите - кто из них? А то я сам не догадаюсь.

Думаю у многих после прочтения этой ветки изменится мнение и о Вашем стиле общения. Что касается seeаttack - хотелось бы услышать мнение более непредвзятых читателей. Я же честно написал в заглавии топика, что знаю как сделать через указатели. Потом честно написал, что хочу сделать через макросы, но не знаю как. Я где-то соврал? Название не самое удачное? Но ведь не полное враньё.

Дискомфорт...
А вообще, комплексы есть у всех. Тока надо с ними бороться.

А я уж думал закончить тему на очень удачной ноте. Не судьба видно.
zltigo
Цитата(GetSmart @ Aug 3 2006, 11:36) *
Только укажите - кто из них? А то я сам не догадаюсь.

Например, вот "этот":
Цитата
zltigo
Вы бы сами почитали книжку. Ну или поспорили с компилятором. Потому как ему не нравися ваше второе описание. Это то, которое и rezident предложил.

Надеюсь с третьего раза удалось догадаться?

Цитата
А это должно работать? У меня в компилере не работает почему-то.

Безвариантно работает первый вариант с "/15qwerty".
У второго нет особых причин не работать, но разработчики конкретного компилятора могут иметь свое
мнение.

Цитата(GetSmart @ Aug 3 2006, 11:36) *
Я же честно написал в заглавии топика, что знаю как сделать через указатели. Потом честно написал, что хочу сделать через макросы, но не знаю как. Я где-то соврал? Название не самое удачное? Но ведь не полное враньё.

1.Слово "вранье" мною не упоминалось.
2.Возражения были ИСКЛЮЧИТЕЛЬНО по вопросу ПОСТФАКТУМ изменению названия топика,
причем с объяснением причины:
Цитата
тогда получится, что несколько 'лохов' пытались нести чушь в ответ на четко заданный вопрос.

, почему-то вызвавшим безудержное веселье.
GetSmart
zltigo
Я понял это как ругательство к остальным. Обычно так не говорят. Раз я ошибся - прошу прощения!
Мог бы даже пообещать не язвить впредь, только это очень сложно и боюсь не удержусь smile.gif

Надеюсь инцендент исчерпан.
zltigo
Цитата(GetSmart @ Aug 3 2006, 12:28) *
zltigo
Надеюсь инцендент исчерпан.

Абсолютно.
Насчет язвительности, то это в полной мере относится и ко мне :-(. Похоже это возрастное, прошу
учитывать при личном общении :-)

К вопросу о
char string[] =
{ 100,101,102,"eprst"

};
1. IAR выругался
2. Watcom сделал все "правильно".

Кто из них больше прав? При пристальном рассмотрении даже не знаю.
Watcom поступает более привычно и по "человечески" естественнее и исходя из того,
что мы занимается инициализацией массива и указание на то, что массив байтовый естественнейшим образом требует помещения в него содержимого строки а не указателя на нее, что и делает без лишних вопрорсов.
Подход IAR, более формален, поскольку "string" есть указатель на него, то чего-же его мне суете
место байта? А вариант char string[] = "eprst", я пропущу, поскольку это подпадает под инициализацию указателя, а не массива. Я бы сейчас был за компромис - поступить как Watcom, но выдать Warning (не ошибку!).
_Bill
Цитата(zltigo @ Aug 3 2006, 12:54) *
Цитата(GetSmart @ Aug 3 2006, 12:28) *

zltigo
Надеюсь инцендент исчерпан.

Абсолютно.
Насчет язвительности, то это в полной мере относится и ко мне :-(. Похоже это возрастное, прошу
учитывать при личном общении :-)

К вопросу о
char string[] =
{ 100,101,102,"eprst"

};
1. IAR выругался
2. Watcom сделал все "правильно".

Кто из них больше прав? При пристальном рассмотрении даже не знаю.
Watcom поступает более привычно и по "человечески" естественнее и исходя из того,
что мы занимается инициализацией массива и указание на то, что массив байтовый естественнейшим образом требует помещения в него содержимого строки а не указателя на нее, что и делает без лишних вопрорсов.
Подход IAR, более формален, поскольку "string" есть указатель на него, то чего-же его мне суете
место байта? А вариант char string[] = "eprst", я пропущу, поскольку это подпадает под инициализацию указателя, а не массива. Я бы сейчас был за компромис - поступить как Watcom, но выдать Warning (не ошибку!).

В IAR это связано, возможно, с тем, что инициализирующие строки располагаются в отдельном сегменте, нежели числовые данные. Какое сообщение компилятор выдает? Что же касается варианта
char string[] = {"eprst"};
то это один из вариантов инициализации массива типа char, эквивалентный
char string[] = {'e', 'p', 'r', 's', 't', \0};
zltigo
Цитата(_Bill @ Aug 3 2006, 13:19) *
В IAR это связано, возможно, с тем, что инициализирующие строки располагаются в отдельном сегменте, нежели числовые данные.

Нет. Это причины общего порядка.

Цитата
Что же касается варианта
char string[] = {"eprst"};
то это один из вариантов инициализации массива типа char, эквивалентный
char string[] = {'e', 'p', 'r', 's', 't', \0};

Да, и при этом
Код
char string[] = { 15, 'e', 'p', 'r', 's', 't', \0};

Можно а
Код
char string[] = {15, "eprst"};

Нельзя, поскольку IAR компилятор считает, что это уже:
Код
char *pointer = "eprst";
char string[] = {15, pointer};
_Bill
Цитата(zltigo @ Aug 3 2006, 13:31) *
Да, и при этом
Код
char string[] = { 15, 'e', 'p', 'r', 's', 't', \0};

Можно а
Код
char string[] = {15, "eprst"};

Нельзя, поскольку IAR компилятор считает, что это уже:
Код
char *pointer = "eprst";
char string[] = {15, pointer};

Да, вероятнее всего, дело именно в этом.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.