A function pointer, also called a subroutine pointer or procedure pointer, is a pointer that points to a function. As opposed to referencing a data value, a function pointer points to executable code within memory. Dereferencing the function pointer yields the referenced function, which can be invoked and passed arguments just as in a normal function call. Such an invocation is also known as an "indirect" call, because the function is being invoked indirectly through a variable instead of directly through a fixed identifier or address.
Attributes | Values |
---|
rdf:type
| |
rdfs:label
| - مؤشر دالة (ar)
- Δείκτης συνάρτησης (el)
- Function pointer (en)
- Puntatori a funzione (it)
- 関数へのポインタ (ja)
- 함수 포인터 (ko)
- Typ funkcyjny (pl)
- 函数指针 (zh)
|
rdfs:comment
| - Στον προγραμματισμό Η/Υ ένας δείκτης συνάρτησης (Αγγλικά: Function pointer) είναι ένα είδος δείκτη δεδομένων ο οποίος υποστηρίζεται από την τρίτη γενιά γλωσσών προγραμματισμού όπως τη Fortran (ονομάζομαι procedure pointers στην Fortran ) και τη C/C++. Η διαφορά με τον απλό δείκτη είναι ότι ένας δείκτης σε συνάρτηση δείχνει το σημείο στην μνήμη το οποίο περιέχει εκτελέσιμο κώδικα και όχι δεδομένα. Όταν χρησιμοποιείται ο τελεστής έμμεσης αναφοράς (dereferencing operator) καλείται η συνάρτηση όπου ο δείκτης δείχνει με τα αντίστοιχα ορίσματα/παραμέτρους. Οι δείκτες συναρτήσεων χρησιμοποιούνται για την υλοποίηση callbacks (όπου δεδομένα μαζί με ένα δείκτη συνάρτησης περνάνε ως παράμετροι σε μια μέθοδο η οποία στην συνέχεια κάνει την κλήση της συνάρτησης αυτής). (el)
- 함수 포인터 (function pointer)는 3세대 프로그래밍 언어(PL/I, 코볼, 포트란, dBASE dBL, 그리고 C)와 객체 지향 프로그래밍 언어(C++과 D)에서 지원되는 포인터의 한 종류이다. 데이터 값을 가리키는 대신, 함수 포인터는 메모리 내에서 실행 가능한 코드를 가리킨다. 될 때, 함수 포인터는 가리키는 함수를 보통의 함수 호출처럼 작동시키고 인자를 보내는데 사용될 수 있다. 이러한 작동은 함수가 고정된 이름이나 주소를 사용해서 직접적으로가 아니라 변수를 통해서 간접적으로 호출되기 때문에 또한 "간접" 호출로도 알려져 있다. 함수 포인터들은 런타임 값들에 기반해 함수를 골라서 실행하게 하는 간단한 방식을 제공하므로써 코드를 간소화하는데 사용될 수 있다. (ko)
- Typ funkcyjny – typ zmiennych, które są interpretowane jako funkcja. W językach, w których funkcje są typem pierwszoklasowym, istnieje możliwość tworzenia funkcji wyższego rzędu. (pl)
- 函数指针是一种在C、C++、D语言、其他类 C 语言和Fortran 2003中的指针。函数指针可以像一般函数一样,用于调用函数、传递参数。在如 C 这样的语言中,通过提供一个简单的选取、执行函数的方法,函数指针可以简化代码。 函数指针只能指向具有特定特征的函数。因而所有被同一指针运用的函数必须具有相同的参数個數和型態和返回类型。 (zh)
- المؤشر لدالة (بالإنجليزية: Function Pointer) هو مؤشر يشير لعنوان دالة في ذاكرة الحاسوب. وبالمقارنة بمؤشر يشير لقيمة بيان، يشير مؤشر الدالة لكود قابل للتنفيذ. وتتبع المؤشر لدالة يؤدي إلى الدالة المشار إليها، ويمكن تنفيذ هذه الدالة وتمرير قيم لها كما يحدث في نداء تقليدي. تنفيذ الدالة بهذه الطريقة يسمى تنفيذًا غير مباشر؛ لأن الدالة تُنفذ بصفة غير مباشرة عبر متغير ثان بدلًا من تنفيذها بمناداتها مباشرة. يمكن استخدام المؤشرات للدوال في تبسيط الكود؛ إذ توفر طريقة بسيطة لاختيار الدالة المطلوب تنفيذها بناءً على متغيرات في وقت التشغيل. (ar)
- A function pointer, also called a subroutine pointer or procedure pointer, is a pointer that points to a function. As opposed to referencing a data value, a function pointer points to executable code within memory. Dereferencing the function pointer yields the referenced function, which can be invoked and passed arguments just as in a normal function call. Such an invocation is also known as an "indirect" call, because the function is being invoked indirectly through a variable instead of directly through a fixed identifier or address. (en)
- Un puntatore a funzione è un tipo di puntatore in C, C++, D, e altri linguaggi di programmazioni stile C. Quando viene dereferenziato esso invoca una funzione, passandole zero o più argomenti come ad una funzione normale. Nei linguaggi di programmazione come il C, i puntatori a funzione possono essere usati per semplificare il codice fornendo un modo semplice per eseguire codice in base a parametri determinati a run-time. (it)
- 関数へのポインタ (英: pointer to function) あるいは関数ポインタ (英: function pointer) は、C言語, C++, D言語やその他多くのプログラミング言語におけるポインタの一種である。関数へのポインタを (dereference) すれば、そのポインタが指し示す関数(サブルーチン)を呼び出せる。応用例としては、switch文を置き換えるテーブルジャンプを実装する、コールバック関数によるカスタマイズポイントを提供する、などといったものがある。 関数オブジェクト (英: function object) は、関数へのポインタに似ているが、コード領域中のエントリポイントを指す単なるポインタである関数へのポインタと違い、データ領域上に実体を持つオブジェクトであるという点が異なっている(実装の詳細は言語や処理系により異なるが)。そのため、関数オブジェクトはデータを保持でき、クロージャを再現することもできる。ゆえに、関数オブジェクトは、「関数へのポインタ」ではなく「関数」という型と値を持つようなものと言え、より強力である。 Javaはバージョン8でメソッド参照を導入し、関数ポインタやデリゲート類似の機能を利用できるようになったが、バージョン7まではメソッド参照を持たず、代替としてメソッドを1つだけ持つインタフェースを利用して同等機能を実現する必要がある。 (ja)
|
Wikipage page ID
| |
Wikipage revision ID
| |
Link from a Wikipage to another Wikipage
| |
Link from a Wikipage to an external page
| |
sameAs
| |
dbp:wikiPageUsesTemplate
| |
has abstract
| - المؤشر لدالة (بالإنجليزية: Function Pointer) هو مؤشر يشير لعنوان دالة في ذاكرة الحاسوب. وبالمقارنة بمؤشر يشير لقيمة بيان، يشير مؤشر الدالة لكود قابل للتنفيذ. وتتبع المؤشر لدالة يؤدي إلى الدالة المشار إليها، ويمكن تنفيذ هذه الدالة وتمرير قيم لها كما يحدث في نداء تقليدي. تنفيذ الدالة بهذه الطريقة يسمى تنفيذًا غير مباشر؛ لأن الدالة تُنفذ بصفة غير مباشرة عبر متغير ثان بدلًا من تنفيذها بمناداتها مباشرة. يمكن استخدام المؤشرات للدوال في تبسيط الكود؛ إذ توفر طريقة بسيطة لاختيار الدالة المطلوب تنفيذها بناءً على متغيرات في وقت التشغيل. ميزة المؤشرات للدوال متوفرة بالجيل الثالث من لغات البرمجة مثل C، ولغات البرمجة كائنية التوجه مثل D و++C. (ar)
- Στον προγραμματισμό Η/Υ ένας δείκτης συνάρτησης (Αγγλικά: Function pointer) είναι ένα είδος δείκτη δεδομένων ο οποίος υποστηρίζεται από την τρίτη γενιά γλωσσών προγραμματισμού όπως τη Fortran (ονομάζομαι procedure pointers στην Fortran ) και τη C/C++. Η διαφορά με τον απλό δείκτη είναι ότι ένας δείκτης σε συνάρτηση δείχνει το σημείο στην μνήμη το οποίο περιέχει εκτελέσιμο κώδικα και όχι δεδομένα. Όταν χρησιμοποιείται ο τελεστής έμμεσης αναφοράς (dereferencing operator) καλείται η συνάρτηση όπου ο δείκτης δείχνει με τα αντίστοιχα ορίσματα/παραμέτρους. Οι δείκτες συναρτήσεων χρησιμοποιούνται για την υλοποίηση callbacks (όπου δεδομένα μαζί με ένα δείκτη συνάρτησης περνάνε ως παράμετροι σε μια μέθοδο η οποία στην συνέχεια κάνει την κλήση της συνάρτησης αυτής). (el)
- A function pointer, also called a subroutine pointer or procedure pointer, is a pointer that points to a function. As opposed to referencing a data value, a function pointer points to executable code within memory. Dereferencing the function pointer yields the referenced function, which can be invoked and passed arguments just as in a normal function call. Such an invocation is also known as an "indirect" call, because the function is being invoked indirectly through a variable instead of directly through a fixed identifier or address. Function pointers can be used to simplify code by providing a simple way to select a function to execute based on run-time values. Function pointers are supported by third-generation programming languages (such as PL/I, COBOL, Fortran, dBASE dBL, and C) and object-oriented programming languages (such as C++, C#, and D). (en)
- 함수 포인터 (function pointer)는 3세대 프로그래밍 언어(PL/I, 코볼, 포트란, dBASE dBL, 그리고 C)와 객체 지향 프로그래밍 언어(C++과 D)에서 지원되는 포인터의 한 종류이다. 데이터 값을 가리키는 대신, 함수 포인터는 메모리 내에서 실행 가능한 코드를 가리킨다. 될 때, 함수 포인터는 가리키는 함수를 보통의 함수 호출처럼 작동시키고 인자를 보내는데 사용될 수 있다. 이러한 작동은 함수가 고정된 이름이나 주소를 사용해서 직접적으로가 아니라 변수를 통해서 간접적으로 호출되기 때문에 또한 "간접" 호출로도 알려져 있다. 함수 포인터들은 런타임 값들에 기반해 함수를 골라서 실행하게 하는 간단한 방식을 제공하므로써 코드를 간소화하는데 사용될 수 있다. (ko)
- Un puntatore a funzione è un tipo di puntatore in C, C++, D, e altri linguaggi di programmazioni stile C. Quando viene dereferenziato esso invoca una funzione, passandole zero o più argomenti come ad una funzione normale. Nei linguaggi di programmazione come il C, i puntatori a funzione possono essere usati per semplificare il codice fornendo un modo semplice per eseguire codice in base a parametri determinati a run-time. Similarmente ai puntatori a funzione esistono le funzioni oggetto o funtori, che possono essere usati in maniera simile. I funtori sono più potenti dei puntatori a funzione perché possono contenere i propri valori. Alcuni linguaggi "puramente" ad oggetti (come java) non supportano i puntatori a funzione.Qualcosa di simile può essere implementato in questi tipi di linguaggi, sebbene, usando le reference alle interfacce questo definisce una singola funzione membro. Linguaggi Microsoft .NET come il C# e il Visual Basic .NET implementano dei puntatoria funzione type safe con i delegate. In altri linguaggi che supportano le funzioni first-class, le funzioni sono trattate come dati e possono esserepassate, ritornate e create dinamicamente da altre funzioni, eliminando la necessità di puntatori a funzione. L'uso eccessivo di puntatori a funzione può produrre un rallentamento del codice sui processori moderni,perché la branch prediction può non essere in grado di prevedere quale ramo verrà preso (dipendeinfatti dal valore del puntatore a funzione a run-time), sebbene questo effetto possa essere compensato per ridurre le ricerche nelle tabelle di lookup. (it)
- 関数へのポインタ (英: pointer to function) あるいは関数ポインタ (英: function pointer) は、C言語, C++, D言語やその他多くのプログラミング言語におけるポインタの一種である。関数へのポインタを (dereference) すれば、そのポインタが指し示す関数(サブルーチン)を呼び出せる。応用例としては、switch文を置き換えるテーブルジャンプを実装する、コールバック関数によるカスタマイズポイントを提供する、などといったものがある。 関数オブジェクト (英: function object) は、関数へのポインタに似ているが、コード領域中のエントリポイントを指す単なるポインタである関数へのポインタと違い、データ領域上に実体を持つオブジェクトであるという点が異なっている(実装の詳細は言語や処理系により異なるが)。そのため、関数オブジェクトはデータを保持でき、クロージャを再現することもできる。ゆえに、関数オブジェクトは、「関数へのポインタ」ではなく「関数」という型と値を持つようなものと言え、より強力である。 C#やVisual Basic .NETなどといった.NET Framework用の言語には、メソッドを参照する型として、デリゲートがある。P/Invokeなどの.NET相互運用において、デリゲートは関数へのポインタにマーシャリングされる。 Javaはバージョン8でメソッド参照を導入し、関数ポインタやデリゲート類似の機能を利用できるようになったが、バージョン7まではメソッド参照を持たず、代替としてメソッドを1つだけ持つインタフェースを利用して同等機能を実現する必要がある。 第一級オブジェクトとして関数を使用できる(第一級関数がある)言語では、関数も引数で渡したり、戻り値で返したり、他の関数から動的に作成したりできるなどデータ同様に扱えるため、関数へのポインタは必要とされない。 (ja)
- Typ funkcyjny – typ zmiennych, które są interpretowane jako funkcja. W językach, w których funkcje są typem pierwszoklasowym, istnieje możliwość tworzenia funkcji wyższego rzędu. (pl)
- 函数指针是一种在C、C++、D语言、其他类 C 语言和Fortran 2003中的指针。函数指针可以像一般函数一样,用于调用函数、传递参数。在如 C 这样的语言中,通过提供一个简单的选取、执行函数的方法,函数指针可以简化代码。 函数指针只能指向具有特定特征的函数。因而所有被同一指针运用的函数必须具有相同的参数個數和型態和返回类型。 (zh)
|
gold:hypernym
| |
prov:wasDerivedFrom
| |
page length (characters) of wiki page
| |
foaf:isPrimaryTopicOf
| |
is Link from a Wikipage to another Wikipage
of | |