
Раньше писала под винду, на крайняк под дос в bc 3.1. Сейчас пишу в Cross Studio для LPC2214. Возникла непонятки:
мне говорили, что без крайней необходимости не стоит писать в с++, лучше в с.
У меня есть хедер с кучей констант. Был написал как для с++ как
Код
const int CP_BUFSIZE = 4095;
const char CP_CANCEL[] = "CANCEL";
Для си переписала так:const char CP_CANCEL[] = "CANCEL";
Код
static const char CP_BUFSIZE = 4095;
static const char CP_CANCEL[] = "CANCEL";
Правильно ли это? Будет ли они занимать место? или подставляться просто значения как при define будут?static const char CP_CANCEL[] = "CANCEL";
Потом компилю, смотрю 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;
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?
Модератор. Данная ветка была выделена в отдельный топик из другой темы по просьбе ее (другой темы) топикстартера.