void ではない関数の宣言された戻り値型は、どのような契約を定めますか?
void
関数は値を伴う return 文を決して使用できない。
return
すべての引数は、戻り値型と完全に同じ型でなければならない。
宣言に関係なく、呼び出し元は常に文字列を受け取る。
return によって返される値は、宣言された戻り値型と互換性がなければならない。