Ваша функция, кажется, нуждается в возврате:
#include <stdio.h>
char toUpper(char);
int main(void)
{
char ch, ch2;
printf("lowercase input : ");
ch = getchar();
ch2 = toUpper(ch);
printf("%c ==> %c\n", ch, ch2);
return 0;
}
char toUpper(char c)
{
if(c>='a'&&c<='z')
c = c - 32;
}
кции toUpper типом возврата является char, но в toUpper () нет возврата. И скомпилируйте исходный код с помощью gcc (GCC) 4.5.1 20100924 (Red Hat 4.5.1-4), fedora-14.
Конечно, выдается предупреждение: «предупреждение: управление достигает конца не пустой функции», но работает хорошо.
Что произошло в этом коде во время компиляции с gcc? Я хочу получить твердый ответ в этом случае. Спасибо :)