fixes #4579
This commit is contained in:
parent
55e86184a5
commit
f439a2f25f
2 changed files with 48 additions and 33 deletions
|
|
@ -16,12 +16,20 @@ spelled*:
|
|||
.. code-block::
|
||||
proc printf(formatstr: cstring) {.header: "<stdio.h>", importc: "printf", varargs.}
|
||||
|
||||
Note that this pragma is somewhat of a misnomer: Other backends will provide
|
||||
Note that this pragma is somewhat of a misnomer: Other backends do provide
|
||||
the same feature under the same name. Also, if one is interfacing with C++
|
||||
the `ImportCpp pragma <manual.html#implementation-specific-pragmas-importcpp-pragma>`_ and
|
||||
interfacing with Objective-C the `ImportObjC pragma
|
||||
<manual.html#implementation-specific-pragmas-importobjc-pragma>`_ can be used.
|
||||
|
||||
The string literal passed to ``importc`` can be a format string:
|
||||
|
||||
.. code-block:: Nim
|
||||
proc p(s: cstring) {.importc: "prefix$1".}
|
||||
|
||||
In the example the external name of ``p`` is set to ``prefixp``. Only ``$1``
|
||||
is available and a literal dollar sign must be written as ``$$``.
|
||||
|
||||
|
||||
Exportc pragma
|
||||
--------------
|
||||
|
|
@ -33,9 +41,19 @@ name is the Nim identifier *exactly as spelled*:
|
|||
.. code-block:: Nim
|
||||
proc callme(formatstr: cstring) {.exportc: "callMe", varargs.}
|
||||
|
||||
Note that this pragma is somewhat of a misnomer: Other backends will provide
|
||||
Note that this pragma is somewhat of a misnomer: Other backends do provide
|
||||
the same feature under the same name.
|
||||
|
||||
The string literal passed to ``exportc`` can be a format string:
|
||||
|
||||
.. code-block:: Nim
|
||||
proc p(s: string) {.exportc: "prefix$1".} =
|
||||
echo s
|
||||
|
||||
In the example the external name of ``p`` is set to ``prefixp``. Only ``$1``
|
||||
is available and a literal dollar sign must be written as ``$$``.
|
||||
|
||||
|
||||
|
||||
Extern pragma
|
||||
-------------
|
||||
|
|
@ -46,7 +64,9 @@ mangling. The string literal passed to ``extern`` can be a format string:
|
|||
proc p(s: string) {.extern: "prefix$1".} =
|
||||
echo s
|
||||
|
||||
In the example the external name of ``p`` is set to ``prefixp``.
|
||||
In the example the external name of ``p`` is set to ``prefixp``. Only ``$1``
|
||||
is available and a literal dollar sign must be written as ``$$``.
|
||||
|
||||
|
||||
|
||||
Bycopy pragma
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue