Как уже упоминалось в других ответах, компилятор должен быть в состоянии оптимизировать любые различия, которые вы показываете; Я бы, вероятно, выбрал первое для удобочитаемости, а также для удобочитаемости. Я бы, вероятно, либо установил #define
(или const
в более поздних версиях C) со значением для вашего вызова sizeof, и typedef для вашего структура, чтобы немного сжать размер.
[править: согласно комментарию к вопросу, актерский состав даже не нужен, удален.]
[править: согласно другому комментарию к вопросу sizeof (log_node) как const больше не имеет никакого смысла вообще; это (вроде) было, когда было c_log_node_size
против sizeof(struct log_event_list)
, но теперь это просто глупо. (есть другие веские причины не делать этого, как отмечено в комментарии, может быть, sizeof_c_log_node может быть в порядке? нет, нет.): D]
typedef struct log_event_list log_node
и тогда оно становится:
log_event_list_cur->next = malloc(sizeof(log_node));
log_event_list_cur = log_event_list_cur->next;
Если вы хотите провести некоторую оптимизацию для этой конкретной части вашего кода, сначала я бы предложил вам выполнить некоторое профилирование вашей системы, чтобы убедиться, что это на самом деле является узким местом. Если это не вызывает проблем, тогда нет необходимости в оптимизации, любое время, потраченное на оптимизацию, было бы лучше потратить в другом месте, так как в любом случае это не имело никакого значения. Вероятно, есть что-то, что могло бы использовать оптимизацию, но может и не быть этим. Но, учитывая этот конкретный блок кода, единственное, что приходит на ум, - это оптимизировать распределение ваших блоков.
Я начал писать некоторый код для этого, но я не оставил его, потому что мне пришло в голову, что вообще не нужно изобретать велосипед, кроме того, что это интересно. Если вы обнаружите, что было бы полезно оптимизировать этот бит кода, есть возможность для настройки ваших выделений: vmalloc . Я не стал бы связываться с этим, если бы вы не смогли действительно продемонстрировать, что это было узким местом. Хотя об этом приятно думать. :)