Difference between revisions of "C values (v0.9)"
(Created page with " Category:NBD Values are "vars" that are not stored in dynamic memory. These are : * $VOID: The null object. * booleans: $TRUE or $FALSE * (16 bit aligned C pointers) :...") |
(No difference)
|
Revision as of 11:25, 16 May 2019
Values are "vars" that are not stored in dynamic memory. These are :
- $VOID: The null object.
- booleans: $TRUE or $FALSE
- (16 bit aligned C pointers) : (void *)
Numbers:
- Integers : 60 bit integer. (60 lower bits of 'int64_t')
- Dates : 60 bit integer. (60 lower bits of 'int64_t')
- Floats : 63 bit double. ( 1 sign bit , 11 exponent bits and 52 mantissa bits (51 explicitly stored))
API
- $VOID, $TRUE , $FALSE are constants.
- $T( const char "..."): Creates a constant char * with 16-bit alignment.
- $POINTER(void *) : Transform a 16-bit aligned pointer in a valid untyped var. (void * -> var). This allows treat pointers as var's.
// creation of an arena with 1Kb
var raw_c_str = $POINTER( $T("My new raw string") );- $P(var) : Transform a var in a 16-bit aligned pointer. (var -> void *). This allow treat var's as C-pointers.
// creation of an arena with 1Kb
char *txt = $P( $POINTER( $T("My new raw string") ) );
- $INT( uint64_t ) : Creates an integer var, integer vars don't need arenas ( int64_t -> var )
var i = $INT(12754);- $I( var ) : returns a raw c integer value. (var -> int64_t)
int64_t ci = $I(i);- $DATE( uint64_t ) : Creates a date var from the number of milliseconds since 1970-01-01 (EPOCH), date vars don't need arenas ( int64_t -> var )
var i = $DATE(1275454566);- $DT( var ) : returns the number of milliseconds since 1970-01-01 (EPOCH) of a date var. (var -> int64_t)
int64_t ci = $DT(i);- $FLOAT( long double ) : Creates a float var, float vars don't need arenas ( int64_t -> var )
var f = $INT(12754.4546);- $F( var ) : returns a raw c integer value. (var -> int64_t)
long double cf = $I(f);- $O(arena, cvar) : Generical constuctor: Creates a var from a c raw variable:
- if cvar is a char * then $O(arena, str) is equivalent to $S(arena,str)
- if cvar is a int , unsigned int, uint64_t or int64_t $O(arena, i) is equivalent to $INT(i)
- if cvar is a float or double then $O(arena, f) is equivalent to $FLOAT(f)