Как можно оптимизировать/сделать более читаемым данный фрагмент кода - Оптимизация

Вопрос Как можно оптимизировать/сделать более читаемым данный фрагмент кода

Регистрация
9 Сен 2013
Сообщения
75
Репутация
0
Спасибо
0
Монет
0
Хочу посмотреть, можно ли как-то оптимизировать данную функцию, не использовать доп. указатели для освобождения памяти из другой функции, которая возвращает в качестве значения адрес другой переменной.
300294035_5e8e146bcacac25bd565124679f7d6da_800.png

 
Регистрация
4 Окт 2013
Сообщения
94
Репутация
-3
Спасибо
0
Монет
0
// Получает размер файла
long get_filesize(char* filename) {
long size = -1;
FILE* fp = fopen(filename, "r");
if (fp == NULL) { ; }
else {
if (fseek(fp, 0, SEEK_END) < 0) { ; }
else size = ftell(fp);
fclose(fp);
}
return size;
}
 
Регистрация
17 Сен 2013
Сообщения
86
Репутация
0
Спасибо
0
Монет
0
а через дескриптор файла? как конкретно не помню, но структуры в винде есть на все случаи жизни )) там описание файла и получаем от размера до местоположения на диске
 
Регистрация
22 Мар 2013
Сообщения
91
Репутация
0
Спасибо
0
Монет
0
Странное имя функции "получить размер файла", которое возвращает массив символов, а не целочисленное значение
Почему функция не получает в параметр имя файла, а какую-то ссылку, которая судя по коду будет содержать количество строк в файле
Что за функция вызывается ( по имени непонятно )
В общем код нарушает все принципы программирования

PS: sizeof(str) должен по логике вернуть размер указателя ( обычно 4 )
А конструкция
str=str_ptr=...
free(str_ptr)
освобождает место и указатель str становится некорректным
 

Похожие темы

Сверху Снизу