В коде C, какЯвляется ли fputs более эффективным, чем формат («% s», ..)?
printf("%s", message);
Интересно, должен ли я предпочитаю использовать
fputs(message, stdout);
Прежний код лучше, но это он медленнее? или использует больше памяти? Я предпочитаю более четкий код, но не тогда, когда он выглядит как потерянное время & память глупо.
Я хотел бы знать, что компилятор обнаруживает такие ситуации и что необходимый синтаксический анализ и интерпретация формата не выполняется во время выполнения. В конце концов, gcc
жалуется на printf("")
, поэтому компиляторы могут «понимать» форматы и предварительно обрабатывать их.
PS: что прежний стиль более ясен, при написании format("name=%s\n",unameData.nodename);
вместо fputs(stdout,"name=");fputs(stdout,unameData.nodename);putchar('\n');
. Это, в конце концов, назначение форматов.
Пробовали ли вы несколько тестовых прецедентов для проверки времени выполнения каждой опции? Если у вас есть, может быть полезно опубликовать их здесь. В противном случае, как вы знаете наверняка, что он медленнее, чем другой? –
Бенчмарк! Делайте оба миллиона раз и смотрите. Не то, чтобы это имело значение в любом случае, так как сами функции не будут те, которые занимают все время, а фактический вывод на терминал. –
Чистый код почти всегда лучше, чем эффективный код, поэтому оптимизируйте узкие места, если вам нужно, но в других случаях читайте. – meskobalazs