Article View: fj.lang.c
Article #4598Re: Type of functions that return a pointer to self
From: Yasushi Shinjo
Date: Sat, 18 Apr 1992 18:34
Date: Sat, 18 Apr 1992 18:34
120 lines
5891 bytes
5891 bytes
$@C^GHBg3X$N?7>k$G$9!#$3$s$K$A$O!#(J
$@8EED$5$s$N$*$C$7$c$kDL$j!"%-%c%9%H$r%,%s%,%s;H$C$F$$$$$H;W$$$^$9!#(J
From article <CHIK.92Apr16102946@ss38.icot.or.jp>,
by chik@icot.or.jp (Takashi Chikayama):
> ICOT $@$N6a;3$G$9(J.
> $@2?$K;H$*$&$H$7$F$$$k$+$H$$$&$H(J, $@:F5"8F$S=P$7$G%k!<%W$r:n$k$N$,Ev$?$jA0(J
> $@$K$J$C$F$$$k$h$&$J8@8l(J (Prolog $@$H$+(J) $@$N=hM}7O$r(J, C $@$X$N%3%s%Q%$%i$H$7(J
> $@$F:n$m$&$H$7$F$$$k$N$G$9(J. $@B?$/$N%W%m%0%i%`$G(J, $@:F5"8F$S=P$7$N?tJ,$N0l(J
> $@$,%W%m%0%i%`$,A4It=*$k$^$G(J return $@$7$J$+$C$?$j$7$^$9(J. $@$G$9$+$i(J, $@KvHx(J
> $@:F5"8F$S=P$7$r(J jump $@$K:GE,2=$9$k$N$O(J, $@<BMQE*$J%7%9%F%`$N$?$a$K$OI,?\$J(J
> $@$N$G$9(J.
$@$J$k$[$I!##C$r(J a portable assembly language $@$H$7$F;H$*$&$H$$(J
$@$&$3$H$G$9$M!#IaDL$N%"%;%s%V%j8@8l$J$i!"(Jjump $@0lH/$G$9$`$s$G(J
$@$7$g$&$1$I$M!#<+J,<+?H$rD>@\8F=P$9$J$i!"(Jgoto $@J8$K%3%s%Q%$%k(J
$@$G$-$k$N$G$7$g$&$1$I!"4V@\E*$K8F=P$9;~$K$OBP1~$G$-$^$;$s$M!#(J
KCl $@$J$s$+!"$I$&$d$C$F$$$k$s$G$g$&$M!#(J
> $@$I$&$;B>$K$b!X4m81$J!Y%-%c%9%H$r$?$/$5$s$d$C$F$O$$$k$s$G$9$,(J, $@$=$l$O0\(J
> $@?"@-$NHO0O(J ($@$?$H$($P(J 32 $@%S%C%H%P%$%H%"%I%l%9$N5!3#(J, $@$H$+(J) $@$r9M$($F(J, $@$=(J
> $@$l0J>e$N0\?"@-$,$J$$$3$H$r0U<1$7$?>e$G$d$C$F$$$kHs>o<jCJ$G$9(J.
$@#C$G$O!"%]%$%s%?$N%-%c%9%H$O!"A4A3LdBj$J$$$H;W$$$^$9$h!#(J
$@$=$NBeI=A*<j$,!"(Jmalloc()$@$G$9!#$I$s$J9=B$BN$G$b!"(J
struct s *p ;
p = (struct s *) malloc( sizeof(struct s) );
$@$G!"NN0h3NJ]$,$G$-$^$9$+$i!#$D$^$j!"#C$N%]%$%s%?$J$s$F!"0lKg(J
$@$O$,$;$P%"%I%l%9$G$9!#<B:]!"$3$N%-%c%9%H$N7k2L!"%3!<%I$OA4A3(J
$@A}$($^$;$s$7!#(J
$@%]%$%s%?$N%-%c%9%H$G>/$75$$K$J$k$N$O!"(J80*86 $@$N%;%0%a%s%H$G$9!#(J
$@%Q!<%=%J%k!&%3%s%T%e!<%?$N#C$G!"(Jfar $@$H$+!"(Jbig $@$H$+(J large $@$H(J
$@$+!"G:$^$5$l$??M$bBg@*$$$k$H;W$$$^$9!#(J80386 $@$J$s$+!"Bg>fIW$J(J
$@$s$G$7$g$&$M!#(Jmalloc() $@$b$A$c$s$HF0$$$F$$$k$H$3$m$r8+$k$H!#(J
> $@$3$N!V<+J,$HF1$8$h$&$J4X?t$X$N%]%$%s%?$rJV$94X?t!W$H$$$&$N$K4X$7$F$O(J,
> $@0\?"@->e$NLdBj$b2?$b$J$$$7(J, $@7?%7%9%F%`$H$7$F2?$bJQ$J$3$H$O$7$F$$$J$$$D(J
> $@$b$j$J$s$G$9$h$M(J. $@$=$l$J$N$K%-%c%9%H$H$$$&Hs>o<jCJ$r;H$o$J$1$l$P$J$i(J
^^^^^^^^
> $@$J$$$N$,5$$KF~$i$J$$$N$G$9(J.
$@#C$N7?%7%9%F%`$J$s$F!"$=$s$J$b$N$@$H;W$$$^$9!#$=$l$K!"%-%c%9(J
$@%H$O!"Hs>o<jCJ$G$O$J$/$F>oEe<jCJ$G$9!#%-%c%9%H$,$J$$$H!"(J
malloc() $@$O;H$($^$;$s!##C$r%"%;%s%V%j8@8l$H3d$j@Z$C$F!"%-%c(J
$@%9%H$NMr$K$J$C$F$b5$$K$7$J$$$H$$$&$N$,$$$$$H;W$$$^$9!#(J
> $@0lJ}(J, $@?7>k$5$s$+$i$O(J:
> |struct func
> |{
> | struct func (*x)();
> |};
> $@$?$7$+$K(J struct ($@$^$?$O(J union) $@$G$/$k$a$P(J, $@:F5"E*$JDj5A$,$G$-$k$N$G$9(J
> $@$,(J, $@$3$&$9$k$HB?$/$N(J C $@%3%s%Q%$%i$G$OHs>o$K>iD9$J%3!<%I$,=P$F$7$^$$$^(J
> $@$9(J. $@C1$J$k%]%$%s%?$J$iJV$jCM$O%l%8%9%?>e$KJV$9$H$3$m$r(J, $@$o$6$o$6JV$j(J
> $@CM$rJV$9$?$a$N%"%I%l%9$rEO$7(J, $@$=$3$K%3%T!<$9$k$h$&$J$3$H$r$9$k$N$G$9(J
> (gcc $@$N(J -fpcc-struct-return $@$H$$$&%*%W%7%g%s$"$?$j$K(J, $@6lO+$N@W$,$&$+$,(J
> $@$($^$9(J). $@$=$&$G$J$$%3%s%Q%$%i(J (gcc $@$O$=$&$G$9(J) $@$b$"$k$N$G$9$,(J, $@@-G=LL(J
^^^^^^^^^^^^^^
> $@$G$N0\?"@-$r9M$($k$H(J, $@1x$i$7$/$F$b%-%c%9%H$7$?J}$,$^$7$+(J, $@$H;W$C$F$7$^(J
> $@$$$^$9(J.
$@$=$&$=$&!"(Jgcc $@$O!">.$5$J9=B$BN$r%l%8%9%?$KF~$l$FJV$9$s$G$9$h$M!#(J
> $@$3$&$J$k$H(J, $@$J$<(J C $@$G$O(J struct $@$d(J union $@$K$OL>A0$r$D$1$FMWAG$N:F5"Dj5A(J
> $@$,$G$-$k$N$K(J, $@4X?t$NJV$97?$K$D$$$FF1MM$NG[N8$r$7$J$+$C$?$N$@$m$&(J, $@$HIT(J
> $@;W5D$K$J$C$F$-$^$9(J. $@$^(J, $@;d$N$d$m$&$H$7$F$k$3$H$,0[>o$J$N$G$7$g$&$+(J.
$@9=B$BN$NCf$N9=B$BN$X$N%]%$%s%?$r7?$N:F5"$H9M$($F$O$$$1$J$$$s(J
$@$G$7$g$&!#$-$C$H!#$D$^$j#C%3%s%Q%$%i$N?H$K$J$C$F9M$($k$H!"$I(J
$@$s$J9=B$BN$G$b(J
struct s1 *x1 ;
$@$H$-$?$i!"(Jx1 $@$N$?$a$K#4%P%$%H3NJ]$9$k%3!<%I$r@8@.$9$l$P$$$$(J
$@$o$1$G$9!#(J
$@=i4|$N#C%3%s%Q%$%i$G$O!"B>$N9=B$BN$N%a%s%P$r;H$C$F$bJ?5$$J$b(J
$@$N$b$"$j$^$7$?!#$?$H$($P!"(J
struct s1 {
int s1_x ;
};
struct s2 {
int s2_x ;
};
main();
{
struct s1 *p1 ;
...
f( p1->s2_x );
}
$@$3$&$$$&%W%m%0%i%`$,DL$C$?$o$1$G$9!#3N$+!"F1$8L>A0$N%a%s%P$r(J
$@JL$N9=B$BN$K;H$&$H!"%(%i!<$K$J$C$?$H;W$$$^$9!#!J$G$b!"$=$N%a(J
$@%s%P$N%*%U%;%C%H$,F1$8$@$HDL$7$@$C$?$+$J!#!K(J
> $@$H$$$&$o$1$G(J, $@$4?F@Z$J8f2sEz$K=E$M$F46<UCW$7$^$9$,(J, $@;DG0$J$,$i8=:_$N$H(J
> $@$3$m;d$N%K!<%:$rK~B-$9$k2r$OF@$i$l$F$$$^$;$s(J. $@$3$&$9$l$PNI$$(J, $@$"$k$$(J
> $@$O(J, $@$=$&$$$&$3$H$O%-%c%9%H$9$k$+(J struct/union $@$K$9$k0J30$G$-$J$$$N$@(J,
> $@$H$$$&>pJs$r$$$?$@$1$l$P9,$$$G$9(J ($@$G$-$J$$$H>ZL@$9$k$N$OFq$7$$$G$9$M(J.
> $@$G$-$J$$$H;W$&(J, $@$0$i$$$G$b$"$j$,$?$$>pJs$G$9(J).
$@$H$$$&$o$1$G!"$^$H$a$k$H!"(J
$@!&%]%$%s%?$N%-%c%9%H$O!">o$K0BA4$G!"M>J,$J%3!<%I$b=P$J$$!#(J
$@!&#C$r2DHB@-$N$"$k%"%;%s%V%j8@8l$H$7$F;H$&$J$i!"%-%c%9%H$,(J
$@!!1x$$$H9M$($J$$!#(J
$@!&%]%$%s%?$N@k8@$O!"#4%P%$%H$NNN0h3NJ]$H$$$&0UL#$7$+$J$$!#(J
$@$H$$$&$3$H$G$7$g$&$+!#(J
$@!@!@!!?7>k!!Lw!!!J$7$s$8$g$&!!$d$9$7!K!!!@!@(J
$@!@!@!!C^GHBg3X!!EE;R!&>pJs!!!!!!!!!!!!!!!@!@(J
Technical Details
Message-ID:
<7183@coins.is.tsukuba.ac.jp>Path:
arc1-ca.pugleaf.net!sparky!uunet!ccut!s.u-tokyo!kekux!crimson!ume!gama!coins!yas@gama.is.tsukuba.ac.jpReferences:
<CHIK.92Apr16102946@ss38.icot.or.jp>Show Full Headers
Complete Article Headers
X-Google-Language: Japanese,JIS X-Google-Thread: 106434,5713bef7aaeb72c4 X-Google-Attributes: gid106434,public X-Google-ArrivalTime: 1992-04-18 11:34:02 PST Path: arc1-ca.pugleaf.net!sparky!uunet!ccut!s.u-tokyo!kekux!crimson!ume!gama!coins!yas@gama.is.tsukuba.ac.jp From: yas@gama.is.tsukuba.ac.jp (Yasushi Shinjo) Newsgroups: fj.lang.c Subject: Re: Type of functions that return a pointer to self Message-ID: <7183@coins.is.tsukuba.ac.jp> Date: 18 Apr 92 18:34:02 GMT References: <CHIK.92Apr16102946@ss38.icot.or.jp> Sender: yas@coins.is.tsukuba.ac.jp (Yasushi SHINJO) Lines: 120