uninit local var void bar() { int l; // local variables don't have a default value printf("uninitialized local variable: %x\n", l); } void foo() { int xyz = 0x12345678; printf("quit foo w/ local var = %x\n", xyz); } --- pointer arithmetic int main() { char *c = (char *)0x08200000; int *i = (int *) 0x08200000; printf("%p %p\n", (c+1), (i+1)); return 0; } --- C arrays int a[3] = {1, 2, 3}; // an array of 3 int's char b[3] = {'a', 'b', 'c'}; // an array of 3 char's int main() { // first element is at index 0 printf("%d\n", a[0]); a[1] += 1; // use index access *(a+2) = 5; // pointer access printf("%d %d\n", a[1], a[2]); // pointers to array elements printf("a %p a1 %p a2 %p a2 %p\n", a, a+1, a+2, &a[2]); // pointer arithmetic uses type printf("%p %p\n", b, b+1); return 0; } --- [skipped] Bit fields: struct xyz { int a : 1; int b : 31; }; int main() { struct xyz i; i.a = 1; i.b = 0x7eadbeef; printf("a: %d, %b: %x\n", i.a, i.b); return 0; } --- Milk-V Pioneer https://milkv.io/pioneer --- XuanTie C920 https://xrvm.com/cpu-details?id=4108967096845668352 --- Alibaba cloud https://www.alibabacloud.com/press-room/alibaba-unveils-risc-v-chip-development-platform --- tenstorrent https://tenstorrent.com/risc-v/