Work at SourceForge, help us to make it a better place! We have an immediate need for a Support Technician in our San Francisco or Denver office.

Close

Diff of /ansi_data_flow.xml [bb8fc1] .. [57ab2e] Maximize Restore

  Switch to unified view

a/ansi_data_flow.xml b/ansi_data_flow.xml
...
...
152
cl_object three = cl_funcall(4, plus, one, one, one);
152
cl_object three = cl_funcall(4, plus, one, one, one);
153
printf("\n1 + 1 is %d\n", ecl_fixnum(two));
153
printf("\n1 + 1 is %d\n", ecl_fixnum(two));
154
printf("\n1 + 1 + 1 is %d\n", ecl_fixnum(three));
154
printf("\n1 + 1 + 1 is %d\n", ecl_fixnum(three));
155
</programlisting>
155
</programlisting>
156
156
157
   <para>Another restriction of C and C++ is that functions can only take a limited number of arguments. In order to cope with this problem, &ECL; uses an internal stack to pass any argument above a hardcoded limit, <constant>ECL_C_CALL_ARGUMENTS_LIMIT</constant>, which is as of this writing 63. The use of this stack is transparently handled by the Common Lisp functions, such as <symbol>apply</symbol>, <symbol>funcall</symbol> and their C equivalents, and also by a set of macros, <link linkend="ref.cl_va_arg"><function>cl_va_arg</function></link>, which can be used for coding functions that take an arbitrary name of arguments.</para>
157
   <para>Another restriction of C and C++ is that functions can only take a limited number of arguments. In order to cope with this problem, &ECL; uses an internal stack to pass any argument above a hardcoded limit, <constant>ECL_C_CALL_ARGUMENTS_LIMIT</constant>, which is as of this writing 63. The use of this stack is transparently handled by the Common Lisp functions, such as <symbol>apply</symbol>, <symbol>funcall</symbol> and their C equivalents, and also by a set of macros, <link linkend="ref.ecl_va_arg"><function>cl_va_arg</function></link>, which can be used for coding functions that take an arbitrary name of arguments.</para>
158
 </section>
158
 </section>
159
159
160
 <xi:include href="ref_c_data_flow.xml" xpointer="ansi.data-and-control.c-dict" xmlns:xi="http://www.w3.org/2001/XInclude"/>
160
 <xi:include href="ref_c_data_flow.xml" xpointer="ansi.data-and-control.c-dict" xmlns:xi="http://www.w3.org/2001/XInclude"/>
161
161
162
</chapter>
162
</chapter>