Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
cython
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
cython
Commits
373cc5de
Commit
373cc5de
authored
6 years ago
by
scoder
Committed by
GitHub
6 years ago
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #2409 from gabrieldemarmiesse/test__external_c_code
Added tests to "Interfacing with external C code" part 2
parents
b4f0e29b
714143f4
master
0.29.x
knext
x/cdef-from-bytes
x/compilebench
x/ctuple_vs_pair
0.29.6
0.29.5
0.29.4
0.29.3
0.29.2
0.29.1
0.29
0.29rc2
0.29rc1
0.29b1
No related merge requests found
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
26 additions
and
24 deletions
+26
-24
docs/examples/userguide/external_C_code/delorean.pyx
docs/examples/userguide/external_C_code/delorean.pyx
+9
-0
docs/examples/userguide/external_C_code/marty.c
docs/examples/userguide/external_C_code/marty.c
+13
-0
docs/src/userguide/external_C_code.rst
docs/src/userguide/external_C_code.rst
+4
-24
No files found.
docs/examples/userguide/external_C_code/delorean.pyx
0 → 100644
View file @
373cc5de
# delorean.pyx
cdef
public
struct
Vehicle
:
int
speed
float
power
cdef
api
void
activate
(
Vehicle
*
v
):
if
v
.
speed
>=
88
and
v
.
power
>=
1.21
:
print
(
"Time travel achieved"
)
\ No newline at end of file
This diff is collapsed.
Click to expand it.
docs/examples/userguide/external_C_code/marty.c
0 → 100644
View file @
373cc5de
# marty.c
#include "delorean_api.h"
Vehicle
car
;
int
main
(
int
argc
,
char
*
argv
[])
{
Py_Initialize
();
import_delorean
();
car
.
speed
=
atoi
(
argv
[
1
]);
car
.
power
=
atof
(
argv
[
2
]);
activate
(
&
car
);
Py_Finalize
();
}
This diff is collapsed.
Click to expand it.
docs/src/userguide/external_C_code.rst
View file @
373cc5de
...
...
@@ -458,32 +458,12 @@ contains the api call which is generating the segmentation fault does not call
the :func:`import_modulename` function before the api call which crashes.
Any public C type or extension type declarations in the Cython module are also
made available when you include :file:`modulename_api.h`.:
:
made available when you include :file:`modulename_api.h`.:
# delorean.pyx
cdef public struct Vehicle:
int speed
float power
.. literalinclude:: ../../examples/userguide/external_C_code/delorean.pyx
cdef api void activate(Vehicle *v):
if v.speed >= 88 and v.power >= 1.21:
print("Time travel achieved")
.. sourcecode:: c
# marty.c
#include "delorean_api.h"
Vehicle car;
int main(int argc, char *argv[]) {
Py_Initialize();
import_delorean();
car.speed = atoi(argv[1]);
car.power = atof(argv[2]);
activate(&car);
Py_Finalize();
}
.. literalinclude:: ../../examples/userguide/external_C_code/marty.c
:language: C
.. note::
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment