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

 
 
> С++ или С, что лучше для 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
Ответов
YChebisheva
сообщение Jan 29 2009, 12:51
Сообщение #2


Участник
*

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



sergeeff, вопрос в другом - когда именно они подставляются? Или может я ошибаюсь и неправильно понимаю, как в простом си используется define? И что, если я определил хоть 10 тысяч дефайнов, в памяти, после линковки они занимать место не будут?
_Pasha, а как объявить строку-чар константу?

Сообщение отредактировал YChebisheva - Jan 29 2009, 12:53
Go to the top of the page
 
+Quote Post
sergeeff
сообщение Jan 29 2009, 15:50
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007



Цитата(YChebisheva @ Jan 29 2009, 15:51) *
sergeeff, вопрос в другом - когда именно они подставляются? Или может я ошибаюсь и неправильно понимаю, как в простом си используется define? И что, если я определил хоть 10 тысяч дефайнов, в памяти, после линковки они занимать место не будут?
_Pasha, а как объявить строку-чар константу?


Что-то вы про какие-то странные вещи спрашиваете. define назначает некоторому символическому имени некое значение и все!!! Чего вы там уж собираетесь такое в define засунуть - это ваше личное дело. Это все манипуляции до компиляции, и тем более до линкера. Вы как-то повнятнее спросите, а лучше с примером.
Go to the top of the page
 
+Quote Post



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

 


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


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