2017-02-17 33 views
-7

Мне нужно знать о различии между внутренней, внутренней и внешней функциями в программировании на C/C++. Thnx за помощь ^^Разница между встроенными, встроенными, внешними во встроенной системе?

+5

Нет языка C/C++. –

+0

и для завершения того, что сказал @ πάνταῥε,, выражение 'C/C++' является UB как в C, так и в C++. :) –

+1

@ πάνταῥεῖ Вы говорите, что C и C++ отличаются в отношении этого конкретного вопроса? Если они этого не делают, я действительно не вижу необходимости иметь один вопрос для каждого языка. –

ответ

2

Внутренние функции

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

Для ARM существует их внутренняя функция (и многие другие), называемая «__nop()», которая вставляет одну команду NOP (без операции).

Смотрите следующие ссылки для получения дополнительной информации

http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0205g/Ciabijcc.html

What are intrinsics?

https://en.wikipedia.org/wiki/Intrinsic_function

Внешние функции

Сообщает компилятор, что-то определенное в другом месте, так что Безразлично «т жалуются на неопределенность или размножение

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

Смотрите следующие ссылки для получения дополнительной информации

Extern functions in C vs C++

http://www.cplusplus.com/forum/general/21368/

Встроенные функции

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

  1. Сохранить параметр
  2. Перейти к функции
  3. выполнить функцию
  4. результат магазина (если таковые имеются)
  5. Перейти назад к предыдущей позиции

Вместо этого, если функция была встроенной, она заменила бы оператор вызова на сам код функции и затем скомпилировала код.

Смотрите следующие ссылки для получения дополнительной информации

http://www.cplusplus.com/articles/2LywvCM9/

https://en.wikipedia.org/wiki/Inline_function

http://www.cprogramming.com/tutorial/lesson13.html

Есть еще несколько ссылок, доступных на основных поисковых системах.

+2

В то время как ссылки только ответы не одобряются, это показывает больше усилий, чем оп! +1 –

+0

thnx за ответ, но не понимаю, как использовать встроенную функцию? Можете ли вы дать мне экзамен, пожалуйста? – SES

+0

@Colin__s Это не так, как это работает .... К счастью, ответ расширился –