From a7444c2bf041aa620f9242cd9c3bbcc6955a19df Mon Sep 17 00:00:00 2001 From: FreeArtMan Date: Fri, 5 Aug 2022 14:30:50 +0100 Subject: Updated undefined c notes --- md/notes/undefined_c/titles.md | 63 ++++++++++++++++++++++++++++++++++++++++++ md/writeup.md | 3 +- 2 files changed, 65 insertions(+), 1 deletion(-) diff --git a/md/notes/undefined_c/titles.md b/md/notes/undefined_c/titles.md index e3e015d..11d5271 100644 --- a/md/notes/undefined_c/titles.md +++ b/md/notes/undefined_c/titles.md @@ -3,22 +3,82 @@ keywords:c,linux,asm # Undefined C +There is possible to piece of code inside online c compiler like https://www.onlinegdb.com/online_c_compiler +Or run locally + ## Syntax ### Variables + +Standard list of available types + +#### Check type size + +All types have size that are declared in bytes. Some of the types are machine dependents. +like int/long, if there is needed machine independent types then there are int32_t/uint32_t/int64_t/uint64_t + +Each architecture 8bit/16bit/32bit/64bit will have different size for those types + +Use __sizeof()__ + +Running on x86 machine +```c +#include +#include +#include +int main() { + printf("Sizeof int %lu\n",sizeof(int)); + printf("Sizeof int32_t %lu\n",sizeof(int32_t)); + printf("Sizeof int64_t %lu\n",sizeof(int64_t)); + printf("Sizeof long %lu\n",sizeof(long)); + printf("Sizeof long long %lu\n",sizeof(long long)); +} +``` + +Defined macros'es to get type max and min values are + +https://en.cppreference.com/w/c/types/limits + +```c +#include +int main() { + printf("INT_MIN %d\n",INT_MIN); + printf("INT_MAX %d\n", INT_MAX); + printf("LONG_MIN %ld\n",LONG_MIN); +} +``` + +#### How to shoot the leg + +When code suppose to run on 32bit and 64bit platform the size of type may vary. n +Need to take in account this case. + + + + + ### Functions + + + ### If statement ### For cycle ### Structure ### Recursion ### Macro +### Signed/Unsigned +### Endianess ### Styles +### Compiler flags ## Base usage ### Kernel module ### Write plugins + +### Intermediate usage + ## Linking ### Creating shared library ### Create static libraries @@ -41,6 +101,9 @@ keywords:c,linux,asm ### Cross compile ### Different flags ### Check architecture +### ARMv8 +### AVR8 + ## Graphics diff --git a/md/writeup.md b/md/writeup.md index 31f1040..041bfca 100644 --- a/md/writeup.md +++ b/md/writeup.md @@ -4,7 +4,8 @@ title: Writeup page ## Writeup's - + + [BladeRF quick guide](writeup/bladerf_quick_guide.md) [Writing linux mount utility](writeup/writing_linux_mount_utility.md) [Naive FFT implementation in C](writeup/naive_fft_implementation_in_c.md) -- cgit v1.2.3