Это объявление функции
char * strinv(const char *s);
объявляет функцию с возвращаемым типом char *
. Например, функция может динамически выделять память для строки и возвращать указатель на эту строку.
Вот демонстрационная программа, которая показывает, как, например, может быть определена функция.
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
char * strinv(const char *s)
{
size_t n = strlen( s );
char *t = malloc( n + 1 );
if ( t != NULL )
{
size_t i = 0;
for ( ; i != n; i++ ) t[i] = s[n-i-1];
t[i] = '\0';
}
return t;
}
int main(void)
{
const char *s = "Hello Worlds!";
char *t = strinv( s );
puts( t );
free( t );
return 0;
}
вывод программы
!sdlroW olleH
Объявление указателя на функцию может выглядеть следующим образом
char * ( *fp )( const char * ) = strinv;
Чтобы разыменовать указатель и вызвать указанную функцию, вы можете написать
( *fp )( s );
хотя достаточно написать
fp( s );