I'm working on a project where the code uses unsigned long long int to tag what a certain variable represents (1 represents apples, 2 oranges, 4 bananas, 8 pineapples...). Now, we are limited to 64 different variable types because ULLONG_MAX is specified to be 2^64 in limit.h. What if I want to represent 200 different variable types? Is there a way to change ULLONG_MAX to be equal to 2^200? Can this be done inside the code so limit.h does not have to be changed on each machine we use? Is this even possible if we're only using a 64 bit OS (openSuse)?
My advisor claims that he has used our 64 bit unsigned long long int strategy on 32 bit machines, so theoretically we should be able to do more than 64 bit operations on 64 bit machines. Also, the way the code is set up would require outrageous changes to no longer use this unsigned long long int, so (at least for now) they are determined not to change how this works.