https://github.com/roecrew/nymph/blob/master/nymph/example/n...
https://github.com/roecrew/nymph/blob/master/nymph/example/n...
int *myDictLen = malloc(sizeof(int));
*myDictLen = 0;
I strongly suspect that the author is basically unaware of the & address operator. I would suggest that learning C syntax is a prerequisite to improving it.All I see is "C with different syntax". That could easily be a challenging side project whilst learning compilers / language design.
I've always found changing things up a useful means of practice. I wanted to learn how HTTP servers worked. I wanted to learn more Lisp. I implemented it in Common Lisp. I learned a lot.
{
int x = (side_effect(), initializing_expr());
int y = x + 42;
From C99 onward, this could be: {
side_effect();
int x = initializing_expr();
int y = x + 2;
We use the comma operator in for loops because it has places in its syntax which take one expression. This limitation can arise in other contexts, like some macro MAC(E) where E must be a single expression. If want to to have two sequenced effects in there, we can use MAC((eff1, eff2)).Just stack/automatically allocate the resource and take the address with & then pass the pointer around. Because the data is automatically cleaned up you know you won't have any leaks (and certain whole other classes of bugs).
EDIT - Consider:
int myDictLen = 0;
int* myDictLenPtr = &myDictLen;
/* now you can pass around the pointer myDictLenPtr
to functions that can used an int* and it will be
available in this scope and automatically cleaned
up for you. */int var_a = 5;
and use &var_a when you want to acess that variable as a pointer within that scope. Not only is this more efficient, it is much easier to read.