Fancy Asserts

Run Settings
LanguageC
Language Version
Run Command
#include <stdio.h> #include <stdlib.h> typedef __uint128_t u128; typedef __uint64_t u64; typedef __uint32_t u32; typedef __uint16_t u16; typedef __uint8_t u8; typedef __int128_t s128; typedef __int64_t s64; typedef __int32_t s32; typedef __int16_t s16; typedef __int8_t s8; typedef __uint32_t b32; // Switches #define DEBUG 1 // Dissapearing functions #if DEBUG #define Dlog(...) \ printf(__VA_ARGS__) // TODO:Daniel: Log true asserts as well. // TODO:Daniel: Break code if complier is correct. // NOTE:Daniel: ... is a printf string with printf functionality. #define Assert(Expression,...) \ if(!(Expression)) \ { \ Dlog("Assert File: %s\n",__FILE__); \ Dlog(" Line: %i\n",__LINE__); \ Dlog(" Function: %s\n",__FUNCTION__); \ Dlog(" Expression: %s\n",#Expression); \ \ if(__VA_ARGS__) \ { \ Dlog("Error Message: "); \ Dlog(__VA_ARGS__); \ Dlog("\n"); \ } \ \ goto PanicExit; \ } //#define Assert(Expression) if(!(Expression)) {*(s32 *)0 = 0;} // NOTE:Daniel: Breaks code #else #define Assert(Expression,...) #define Dlog(...) #endif int main() { u32 Large = 20; u32 Small = 500; //Assert(Large > Small , 0); // NOTE:Daniel: Can take 0 to not print error message Assert(Large > Small , "Random printf() talk can go in here, So write \"nice\" things: Large == %i, Small == %i" , Large , Small); Dlog("Yar"); return 0; PanicExit: { // NOTE:Daniel: Save state to disk before exit return 112; } }
Editor Settings
Theme
Key bindings
Full width
Lines