Names beginning with _ are reserved for the (update: C) implementation or the C standard1. Thus this code invokes undefined behavior, meaning that it can do anything on a standards-complaint compiler.
(This does not necessairly mean you can't have an XS function called "_foo"; if you write directly in XS code you do not need to make a corresponding C function (update: (2) beginning the same as the XS function's name) for every XS function, however Inline::C does not appear to allow you to "declare" functions like that.)
1: My reading of the C draft standard
(it's not the final document but likely to be very, very similar to the latest one) would seem to indicate that not all "names" are reserved for all purposes; it seems that labels and structure and union members can use names starting with _ followed by a lower case letter without problem.
update: function-scoped variables and, I think, #defines should also be exempt for the same class of names. (Thanks to Zaxo for helping me fiquire this out.)
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|