I think you are confused about how to access the arrays L0 and L1 , as they are defined as macros. Just assign them to arrays, as the preprocessor will simply replace them:
int l[][4]=L0; int m[][4]=L1;
The preprocessor will replace L0 and L1 with its values, and the compiler will see them only as:
int l[][4]={ {0, 0, 0, 0}, {0, 0, 0, 1}, {0, 2, 0, 0} }; int m[][4]={ {0, 0, 0, 5}, {0, 0, 0, 6}, {0, 0, 7, 0} };
Now you can use l and m to access the elements of the array. It should be easy enough to add two arrays from here :)
source share