Составители:
Рубрика:
53
ния, за исключением тех случаев, когда возвращаемым значением явля-
ется указатель.
Использование функций, возвращающих указатели, имеет некото-
рые особенности, так как их значениями являются адреса памяти дан-
ных определенного типа. Рассмотрим пример функции, возвращающей
указатель на тип char. Эта функция находит в строке первый пробел и
возвращает его адрес:
/* Пример 32 */
char* find( char* string )
{
int i=0;
while (( string[i] != ‘ ‘) && (string[i] != ‘\0’)) i++;
if ( string[i] == ‘ ‘ ) return &string[i];
else return NULL
}
Когда функция не должна возвращать никакого значения, она имеет
тип void. Например, для вывода на экран горизонтальной строчки, со-
стоящей из заданного символа, начиная с текущего положения курсора,
можно использовать следующую функцию:
/* Пример 33 */
void gorisont_line( char ch )
{
int i;
for ( i=0; i<80; i++ ) printf(“%c”,ch);
}
Если для функции, которая не возвращает значение, не объявить тип
void, то она по умолчанию будет иметь тип int, что вызовет предупреж-
дающее сообщение компилятора. Объявление типа возвращаемого зна-
чения функции, даже если в этом нет необходимости, является хоро-
шим неформальным правилом при программировании.
5.2. Прототипы функций
Особенностью стандарта ANSI языка С является то, что для создания
правильного машинного кода функции ему необходимо сообщить до ее
первого вызова тип возвращаемого результата, а также количество и
Страницы
- « первая
- ‹ предыдущая
- …
- 51
- 52
- 53
- 54
- 55
- …
- следующая ›
- последняя »