1) BUFSIZ is a macro defined in stdio.h. It is defined by the C standard.
2) The * denotes that you're using a pointer. A pointer is a variable that stores the address (memory location) of another variable. In this case:
Code:
char *promptAndAnswer ( char *buff, size_t size ) {
promptAndAnswer returns a pointer to a character. (Read it from right to left to easier understand it:
Code:
promptAndAnswer /* the function... */
* /* returns a pointer to... */
char /* a character... */
)
Also, it as an argument takes a pointer to a character:
Code:
promptAndAnswer ( char *buff,
buff is a * pointer to a char
3) size_t is a data type defined by the C standard. It is defined to be an unsigned integeral type. Usually defined as an unsigned long, but it doesn't have to be. It only has to be unsigned, integeral. It's guarinteed to be safe for indexing arrays, as you can't run off the lower boundry. (Nothing stops you from running off the top end though, except your careful attention.)
Quzah.