What language?
In C I use "char" for a single signed byte and "unsigned char" for an unsigned byte (0 - 255). In my compilers (Borland) I may get a warning but nothing else (unless I use them wrong in my programming then I get loops and crashes!). The only thing I have to keep in mind is how dinky small the data is and the difference between signed and unsigned. For example:
char V1; // legal values -128 to 127
// actually, this might be -127 to 128 depending on operating system and compiler
unsigned char V2; // legal values 0 to 255
At least I used to be a byte-grinch until I found out:
Setting the compiler to WORD alignment pads out all byte-sized data to 2 bytes. (Meaning I wasted space). Even when saving data to disk...
Not having it WORD aligned was slower.
Using char sized variables for loops is slower (the compiler works a routine to pad it to integer size and loop!).
Writing code to interpret and debug non-standard data wastes too much time. And can use more memory than is saved (code isn't free - every line takes memory).
Type casting isn't free, either.
In the end, my take: buy more storage if at all possible. If not, learn to create your own interpretive variables if you can (an array of integers read one byte at a time). Or use more effecient storage.
Maybe even learn to use home-grow compression routines if data tends to repeat a lot.
Most people I have seen had to define a "byte" for use in C-programs something like this:
#typedef unsigned char BYTE;
#typedef unsigned char byte;
Which is just using an unsigned char with a different name.