"P.Y. Adi Prasaja" wrote:
>
> Hehe.. yang terakhir ini malah aku nggak sadar :) Sebenarnya maksudku
> fungsi yang dideklarasikan sebagai void, bisa tidak harus menyertakan
> argumen dalam (). Contoh:
>
> #include <signal.h>
> #include <sys/types.h>
> #include <sys/wait.h>
>
> void wait_single_child(int sig);
> {
> pid_t pid;
> pid = wait(&stat);
> return;
> }
>
> main ()
> {
> ...
> signal(SIGCHLD,wait_single_child);
> ...
> }
>
> Ada yang bisa menjelaskan hal ini?
function name itself adalah _static_ pointer ke address
dimana fungsi itu mulai (entry point). Kurang lebih sama
dengan nama array sendiri yang merupakan static pointer ke
array object type.
Static berarti tidak boleh diubah dengan pointer arithmetic
maupun assignment.
static bukan dalam arti C object type (yang cuma 4:
static, auto, extern, constant)
contoh array:
int *p, a[100];
p++; /* legal */
a++; /* illegal */
p = a; /* legal */
a = p; /* illegal */
contoh function:
#include <unistd.h>
int main(void)
{
int (*f)(), (*g)();
f = sync; /* man 2 syscall */
sync = g; /* illegal */
f();
return 0;
}
--
+---| Netscape Communicator 4.x |---| Powered by Linux 2.2.x |---+
|/v\ Agus Budy Wuysang MIS Department |
| | Phone: +62-21-344-1316 ext 317 GSM: +62-816-1972-051 |
+--------| http://www.rad.net.id/users/personal/s/supes |--------+
--------------------------------------------------------------------------------
Utk berhenti langganan, kirim email ke [EMAIL PROTECTED]
Informasi arsip di http://www.linux.or.id/milis.php3
Pengelola dapat dihubungi lewat [EMAIL PROTECTED]