mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik "INTRINSIC" Funktion ?


Autor: Jan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo allerseits,

ich verwende ein Library in deren Funktionsbeschreibung einige 
Funktionen als "INTRINSIC" bezeichnet werden. Was bedeutet dies?

Danke schonmal im voraus ;-)

Gruss, Jan

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jan schrieb:
> Hallo allerseits,
>
> ich verwende ein Library in deren Funktionsbeschreibung einige
> Funktionen als "INTRINSIC" bezeichnet werden. Was bedeutet dies?

Was es genau bedeutet steht in der Doku zu deinem Compiler, da es sich 
um keine Standard-C Schlüsselwort handelt.

Intrinsic wird meistens verwendet um anzuzeigen, dass der Compiler das 
Verhalen einer Funktion kennt und mit dieser Funktion wie mit einer 
inline Funktion arbeitet, selbst wenn er den Funktionsrumpf nicht sieht.

strlen ist zb so ein Kandidat.
Die Funktion ist trivial und man hat in den Compiler eingebaut wie sie 
funktioniert. D.h. auch ohne das der Compiler die Implementierung der 
Funktion sieht wird er sich so verhalten, als ob er ein
inline size_t strlen( const char * s )
{
  size_t result = 0;
  while( *s++ )
    result++;

  return result;
}
vorgesetzt bekommen hätte. Wobei er bei intrinsic Funktionen nicht erst 
lange den C-Code analysiert, sondern die 'Übersetzung' quasi schon 
eingebaut hat und mit viel mehr Wissen in den Code einbauen kann.
Intrinsic könnte man als 'in den Compiler eingebaute Funktionen' 
bezeichnen.

Autor: Jan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke fuer Deine ausfuehrliche Antwort.
Das bringt einiges Licht ins Dunkel ;-)

Gruss, Jan

Autor: Arc Net (arc)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Man könnte noch hinzufügen, dass Intrinsics meistens Funktionen sind, 
die sich auf bestimmte Fähigkeiten der Hardware beziehen und nicht mit 
normalem C nutzbar sind. Auf dem PC z.B. diverse SSE-Befehle, bei ARMs 
z.B. Multiply-And-Accumulate- und SIMD-Befehle.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.