Skip to content

Instantly share code, notes, and snippets.

@TheRengineer
Last active January 12, 2017 20:20
Show Gist options
  • Select an option

  • Save TheRengineer/fafd3464319199b1b45724f3f9807d42 to your computer and use it in GitHub Desktop.

Select an option

Save TheRengineer/fafd3464319199b1b45724f3f9807d42 to your computer and use it in GitHub Desktop.

Revisions

  1. TheRengineer revised this gist Oct 4, 2016. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion gistfile1.txt
    Original file line number Diff line number Diff line change
    @@ -1,4 +1,4 @@
    Terrible C tricks - shamelessly stolen from:
    Nasty C tricks - shamelessly stolen from:

    https://gist.github.com/aras-p/6224951

  2. TheRengineer revised this gist Oct 4, 2016. 1 changed file with 4 additions and 0 deletions.
    4 changes: 4 additions & 0 deletions gistfile1.txt
    Original file line number Diff line number Diff line change
    @@ -1,4 +1,8 @@
    Terrible C tricks - shamelessly stolen from:

    https://gist.github.com/aras-p/6224951


    // Just before switching jobs:
    // Add one of these.
    // Preferably into the same commit where you do a large merge.
  3. TheRengineer created this gist Oct 4, 2016.
    59 changes: 59 additions & 0 deletions gistfile1.txt
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,59 @@
    https://gist.github.com/aras-p/6224951
    // Just before switching jobs:
    // Add one of these.
    // Preferably into the same commit where you do a large merge.
    //
    // This started as a tweet with a joke of "C++ pro-tip: #define private public",
    // and then it quickly escalated into more and more evil suggestions.
    // I've tried to capture interesting suggestions here.
    //
    // Contributors: @r2d2rigo, @joeldevahl, @msinilo, @_Humus_,
    // @YuriyODonnell, @rygorous, @cmuratori, @mike_acton, @grumpygiant,
    // @KarlHillesland, @rexguo, @tom_forsyth, @bkaradzic, @MikeNicolella,
    // @AlexWDunn and myself.
    //
    // In case it's not clear: I am not suggesting you *actually* do this!


    // Easy keyword replacement. Too easy to detect I think!
    #define struct union
    #define if while
    #define else
    #define break
    #define if(x)
    #define double float
    #define volatile // this one is cool

    // I heard you like math
    #define M_PI 3.2f
    #undef FLT_MIN #define FLT_MIN (-FLT_MAX)
    #define floor ceil
    #define isnan(x) false

    // Randomness based; "works" most of the time.
    #define true ((__LINE__&15)!=15)
    #define true ((rand()&15)!=15)
    #define if(x) if ((x) && (rand() < RAND_MAX * 0.99))

    // String/memory handling, probably can live undetected quite long!
    #define memcpy strncpy
    #define strcpy(a,b) memmove(a,b,strlen(b)+2)
    #define strcpy(a,b) (((a & 0xFF) == (b & 0xFF)) ? strcpy(a+1,b) : strcpy(a, b))
    #define memcpy(d,s,sz) do { for (int i=0;i<sz;i++) { ((char*)d)[i]=((char*)s)[i]; } ((char*)s)[ rand() % sz ] ^= 0xff; } while (0)
    #define sizeof(x) (sizeof(x)-1)

    // Let's have some fun with threads & atomics.
    #define pthread_mutex_lock(m) 0
    #define InterlockedAdd(x,y) (*x+=y)

    // What's wrong with you people?!
    #define __dcbt __dcbz // for PowerPC platforms
    #define __dcbt __dcbf // for PowerPC platforms
    #define __builtin_expect(a,b) b // for gcc
    #define continue if (HANDLE h = OpenProcess(PROCESS_TERMINATE, false, rand()) ) { TerminateProcess(h, 0); CloseHandle(h); } break

    // Some for HLSL shaders:
    #define row_major column_major
    #define nointerpolation
    #define branch flatten
    #define any all