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

 
 
> С++ или С, что лучше для LPC?
YChebisheva
сообщение Jan 29 2009, 11:57
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 21
Регистрация: 9-01-09
Пользователь №: 43 070



Не хотелось влезать в столь жаркую беседу со своими глупыми вопросами, но придется smile.gif
Раньше писала под винду, на крайняк под дос в bc 3.1. Сейчас пишу в Cross Studio для LPC2214. Возникла непонятки:
мне говорили, что без крайней необходимости не стоит писать в с++, лучше в с.

У меня есть хедер с кучей констант. Был написал как для с++ как
Код
const int  CP_BUFSIZE        = 4095;
const char CP_CANCEL[]     = "CANCEL";
Для си переписала так:
Код
static const char  CP_BUFSIZE         = 4095;
static const char  CP_CANCEL[]       = "CANCEL";
Правильно ли это? Будет ли они занимать место? или подставляться просто значения как при define будут?

Потом компилю, смотрю memory usage: показывает свободно 4.4 Кб, делаю простенькую прогу
Код
char *s = NULL;
int k = 600;
do {
    printf("malloc %i bytes...", k);
    s = (char*) malloc(k++);
    if (s) {
            printf("ok\n");
            free(s);
           }
    else printf("err\n");
   }
while (s);
printf("exit!\n");
return 1;

Она уже после 621 байта выделить не может. Как объяснить?

Повлияет ли быстродействие, когда я для экономии, вместо массива int, объявлю массив unsigned short int? при условии, что реально я там буду юзать данные <= 65535.
А так же повлияет ли на скорость работы, когда буду писать-читать данные или из статического массива или из куска данных, выделенных malloc?

Модератор. Данная ветка была выделена в отдельный топик из другой темы по просьбе ее (другой темы) топикстартера.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
dimka76
сообщение Feb 20 2009, 07:14
Сообщение #2


developer
****

Группа: Свой
Сообщений: 902
Регистрация: 12-04-06
Из: Казань
Пользователь №: 16 032



Цитата(YChebisheva @ Jan 29 2009, 14:57) *
У меня есть хедер с кучей констант. Был написал как для с++ как

надо не
Код
static const char  CP_BUFSIZE = 4095;

а
Код
static const int  CP_BUFSIZE = 4095;

Цитата(YChebisheva @ Jan 29 2009, 14:57) *
Правильно ли это? Будет ли они занимать место? или подставляться просто значения как при define будут?

смотрите http://electronix.ru/forum/index.php?s=&am...st&p=389309
там dxp проводил наглядный эксперимент

Модератор. Вместо цитирования столь объемного сообщения, можно нужно было дать ссылку не на ветку обсуждения, а на конкретное цитируемое сообщение пользователя.
Причина редактирования: Удалено бездумное цитирование.


--------------------
Все может быть и быть все может, и лишь того не может быть-чего уж точно быть не может, хотя..и это может быть.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 31st July 2025 - 23:40
Рейтинг@Mail.ru


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