LINUX.ORG.RU

понять Си

 , ,


3

2

посоветуйте, что почитать для поверхностного понимания философии языка Си.
я вот экспериментирую (Си+ООП из C++), решил сделать банальную функцию, возвращающую строку с датой:

char* sh_time::getTimeString() {
  time_t t = time(0);
  struct tm * now = localtime( & t );
  //(*s) << printf("%d-%02d-%02d\n", now->tm_year + 1900, now->tm_mon + 1, now->tm_mday);
  size_t sz;
  sz = snprintf(NULL, 0, "%d-%02d-%02d\n", now->tm_year + 1900, now->tm_mon + 1, now->tm_mday);
  s = (char *)malloc(sz + 1);
  snprintf(s, sz+1, "%d-%02d-%02d\n", now->tm_year + 1900, now->tm_mon + 1, now->tm_mday);
  return(s);
}

плюс отдельная функция, делающая free(s).
это у языка такая фишка - каждый на ровном месте огород городит - или же для подобных задач есть стандартизированные пути решения? (я не про готовые функции, а про традиционные способы решения задач)

★★★

Последнее исправление: CYB3R (всего исправлений: 4)
Ответ на: комментарий от ziemin

Ты и C не знаешь.

потому и создал тред - хочу понять, чего от него ждать.

man strftime

это как первокласснику давать калькулятор вместо кнута, пряника и таблицы умножения.
сказал же - экспериментирую.

batekman ★★★
() автор топика
Ответ на: комментарий от batekman

Ты и C не знаешь.

потому и создал тред - хочу понять, чего от него ждать.

Ну и жирнота! Ты типа знал С++ и не знаешь С? Гнать тебя ссаными тряпками!

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от batekman

сказал же - экспериментирую.

Это велосипед. Если ты так экспериментируешь с каждым примитивом, то я представляю как выглядит твой код.

ziemin ★★
()
Ответ на: комментарий от batekman

Ну и хрена тогда это сраное ООП пытаешься куда-то сунуть? Выучи С, тогда поймешь, что ООП — говно.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от batekman

и по Java, и по плюсам. причём в обоих недалеко ушёл.

теперь ты знаешь, что учить одновременно два языка сразу нельзя.

emulek
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.