There are basically three contexts for type conversion from C to JavaScript:
Desired
JavaScript
type |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Undefined |
null |
Pointer |
struct_N |
Cfunction |
String |
Boolean |
Int |
Number |
Array |
||
C type |
Undefined |
Pointer 4 |
Pointer 4 |
struct_N
4 |
Cfunction
4 |
String |
Boolean |
Int |
Number |
Array 5 |
|
char |
Int |
String | Boolean | Int | Number | ||||||
short |
Int |
String | Boolean | Int | Number | ||||||
bool 1 |
Boolean |
Boolean | Int | Number | |||||||
int |
Int |
Boolean | Int | Number | |||||||
float/double |
Number |
Boolean | Int | Number | |||||||
valist |
Pointer 4 |
Array 5 | |||||||||
struct N | struct_N 6 | struct_N 6 | struct_N 6 | struct_N 6 | |||||||
any [n] 2 |
Array 5 |
Array 5 | Array 5 | Array 5 | Array 5 | Array 5 | Array 5 | Array 5 | Array 5 | Array 5 | |
char * |
Pointer 4 | Pointer 4 | Pointer 4 | String |
Array 5 | ||||||
short * |
Pointer 4 | Pointer 4 | Pointer 4 | String |
Array 5 | ||||||
bool * |
Pointer 4 | Pointer 4 | Pointer 4 | Array 5 | |||||||
int * |
Pointer 4 | Pointer 4 | Pointer 4 | Array 5 | |||||||
float/double * |
Pointer 4 | Pointer 4 | Pointer 4 | Array 5 | |||||||
valist * |
Pointer 4 | Pointer 4 | Pointer 4 | Array 5 | |||||||
struct N * |
struct_N 6 |
struct_N 6 | struct_N 6 | struct_N 4 | |||||||
void * |
Pointer 4 | Pointer 4 | Pointer 4 | struct_N 4 |
Cfunction 4 |
Pointer 4 |
|||||
function * |
Cfunction 4 |
Cfunction 4 |
Cfunction 4 |
Cfunction 4 |
|||||||
any ** 3 |
Pointer 4 |
Pointer 4 |
Pointer 4 |
Array 5 |