Tutorial by Examples: ctypes

The most basic object is an int: >>> obj = ctypes.c_int(12) >>> obj c_long(12) Now, obj refers to a chunk of memory containing the value 12. That value can be accessed directly, and even modified: >>> obj.value 12 >>> obj.value = 13 >>> obj c_...
As any good C programmer knows, a single value won't get you that far. What will really get us going are arrays! >>> c_int * 16 <class '__main__.c_long_Array_16'> This is not an actual array, but it's pretty darn close! We created a class that denotes an array of 16 ints. Now al...
In some cases, a C function accepts a function pointer. As avid ctypes users, we would like to use those functions, and even pass python function as arguments. Let's define a function: >>> def max(x, y): return x if x >= y else y Now, that function takes two arguments and r...
Narrow character types The unsigned char type uses all bits to represent a binary number. Therefore, for example, if unsigned char is 8 bits long, then the 256 possible bit patterns of a char object represent the 256 different values {0, 1, ..., 255}. The number 42 is guaranteed to be represented b...

Page 2 of 2