From a63063de42aa85bc15925399894362aba07e13cf Mon Sep 17 00:00:00 2001 From: William Lee Date: Wed, 26 Jun 2024 17:20:36 +0800 Subject: [PATCH] (MOD) Defined 1 more macro "cast". --- common.h | 3 +++ test.c | 3 ++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/common.h b/common.h index 1bf5642..8bd2f6a 100644 --- a/common.h +++ b/common.h @@ -61,6 +61,9 @@ /* Allows different macros using "_" nested with each other. */ # define nest(v1, v2, b) { clone(v1, v2) b } +/* Cast Var "var" into builtin type in C specified with "type". */ +# define cast(var, type) (*(type *)var.addr) + // # define lambda(param, body, capfmt, ...) {\ // /* Duplicate everything from cap. */\ // va_list ptr;\ diff --git a/test.c b/test.c index 13b25f1..20e03b4 100644 --- a/test.c +++ b/test.c @@ -53,7 +53,8 @@ Status Main(void) fail(Array_Create(&arr, 8, sizeof(long long))); for (register int i = 0; i < arr.len; i++) { - (void)printf("%d:\t%p\n", i, arr.members[i].addr); + cast(arr.members[i], long long) = INT64_MAX; + (void)printf("%lld\n", cast(arr.members[i], long long)); } Array_Delete(&arr);