Ошибка компоновщика при наличии не Подставляемая функция определяется в заголовочном файле?

Вы можете использовать time и подоболочку ():

time (
  for (( i=1; i<10000; i++ )); do
    echo 1 >/dev/null
  done
)

Или в одной оболочке {}:

time {
  for (( i=1; i<10000; i++ )); do
    echo 1 >/dev/null
  done
}
6
задан yesraaj 2 July 2009 в 11:06
поделиться

3 ответа

Если заголовок включен более чем в один исходный файл и функция не помечена как «встроенная», у вас будет несколько определений. Защита включения предотвращает только множественное включение в один и тот же исходный файл.

10
ответ дан 8 December 2019 в 05:57
поделиться

Вы нарушаете правило одного определения . Если вы хотите определить функцию непосредственно в заголовке, вы должны пометить ее как inline - это позволит определять функцию несколько раз. Также обратите внимание, что inline не имеет другого значения, в частности, не имеет '

8
ответ дан 8 December 2019 в 05:57
поделиться

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

4
ответ дан 8 December 2019 в 05:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: