Прикованный typedef: Perf.вопрос? - PullRequest
1 голос
/ 04 ноября 2010

Работая с новыми частями кода, я задал себе вопрос: Многочисленные typedef над одним и тем же базовым типом влияют на производительность?

Пример (я знаю, что это глупо, но это то, что я действительно виделчетыре уровня typedef ...):

typedef float T_FLOAT
typedef T_FLOAT T_TIME
typedef T_TIME T_CURRENTTIME
tyoedef T_CURRENTTIME CLOCKCURRENTTIME
// etc.

Приложение, с которым я работаю, довольно большое (сотни тысяч LoC), поэтому мне интересно ...

Использование-02 (иногда -03) с GCC, он вычисляет каждый из этих 4 типов для базового типа?

Любой хедс-ап оценен =)


Ответы [ 2 ]

5 голосов
/ 04 ноября 2010

Нет, typedef является опцией только во время компиляции.

4 голосов
/ 04 ноября 2010

Время выполнения typedef точно равно нулю.Он просто определяет синонимы.В вашем примере вы можете видеть, что смешивание CLOCKCURRENTTIME и float для одной переменной, например, без проблем принимается вашим компилятором.

EDIT: пример того, что я имею в виду

// MyFunction.h

void MyFunction(float f);

// MyFunction.cpp

void MyFunction(CLOCKCURRENTTIME f)
{
  // Do whatever
}

Объявление и реализация совпадают, потому что float и CLOCKCURRENTTIME полностью взаимозаменяемы для компилятора.Если бы они были просто конвертируемыми, вы бы создали новую (не связанную) функцию в файле .cpp.

...