Custom variable width (coming from Verilog)

Hey guys,
I just finished a class in school that focused on FPGAs and hardware design.

I'm now having some trouble with how relatively inefficient the Arduino programming language is. I know it's designed this way for simplicity, but I'm ready to work more directly with the hardware.

Right now I want to declare a 24-bit variable, but i'm unsure how to do this.

More specifically, I want a 2-D array, with "X" number of 24-bit elements, each element holding three 8-bit values.

Also, any resources/links that I should read about lower level access would be appreciated!

Right now I want to declare a 24-bit variable

You can define a three byte struct, but no arithmetic types.

I'm now having some trouble with how relatively inefficient the Arduino programming language is

I must've missed that particular class.

Panici:
Right now I want to declare a 24-bit variable, but i'm unsure how to do this.

More specifically, I want a 2-D array, with "X" number of 24-bit elements, each element holding three 8-bit values.

typedef unsigned char bytes[3] twentyfourbitvalue;
twentyfourbitvalue myArray[rows][columns];

How hard was that?