Files
inline-c/README.md
2020-05-05 13:36:24 +02:00

41 lines
968 B
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# inline-c
is a simple module for defining C code inside Carp code.
## Installation
```clojure
(load "https://veitheller.de/git/carpentry/inline-c@0.0.3")
```
## Usage
This module only provides one function, `inline-c` (it is a macro, actually
:shrug:). This function enables you to write C code inline as a string, to
express those things that are just kind of awkward in Carp (like complex
bit-twiddling) without having to include a helper every time.
```clojure
(load "https://veitheller.de/git/carpentry/inline-c@0.0.3")
(inline-c "int count_set_bits(int n) {
int count = 0;
while (n) {
count += n & 1;
n >>= 1;
}
return count;
}")
(register count-set-bits (Fn [Int] Int) "count_set_bits")
(defn main [] (println* &(count-set-bits 462)))
```
The function is safe to be called multiple times, but its better to not call
it at all if its avoidable. Inlining your C in Carp does not magically make it
safe, naturally.
<hr/>
Have fun!