"void main" means the main function (often the whole program) "returns no value"
"int main" means it returns an integer value when it finishes.
Note that in the case of an embedded program which does not have an operating system, returning any value is pointless as there is nothing to return it to. In the case of a program running on a PC for example, where it terminates and returns to the OS, the value is usually used to indicate success or the reason for failing.
uint32_t A (uint8_t B), does this means that A function will return B B B B of data? Or say since the function is to return A which is 32 bit that is consist with 4x8 bit of B?
I'd like to have a grasp on how will this returned 32bit A becomes given it has an argument of 8bit B.
A function returns the size of data you specified when you created it. So 'uint32_t A' means the function called 'A' returns ONE 32-bit result. Whether you interpret that as one 32 bit value or four 8 bit values depends on how you use it in your program. You can only return one value though, the result can not be four different 8 bit results. If you need to return more than one value from a function, the best method is to pass the address where the results should be stored to the function so it can save the values there.