You'll need to check your compiler's documentation. If you are using gcc, you can compile with the -S (that's a capital S) option to test some assembly code and look for yourself:
char foo( char c ) {
return c +1;
}
int main() {
return foo( 0 );
}
Using gcc -S foo.c
gets you an assembly file you can look to see how _foo works.
I think (but I'm not sure) that most compilers will push it as a machine word, and just use the low byte.
Hope this helps.