Подтвердить что ты не робот

Влияние типа возврата статичным

Каков возможный эффект возврата данных статического типа. И когда мы должны его использовать?

static ssize_t
my_read(int fd, char *ptr)
{
    //code from Stevens Unix Network programming. 
      if (something)
         return (-1)
      if (something else)
          return (0)


      return (1)
}

зачем статично здесь?

Спасибо.

4b9b3361

Ответ 1

Функция статична, а не тип возврата. Это означает, что он может быть вызван только из текущего блока компиляции.

Ответ 2

Мы используем статический тип данных при возврате указателя на переменную, созданную в вызываемой функции. Например,

float * calculate_area(float r) 
{
    float *p;
    static float area;   
    p=&area;   
    area=3.14*r*r;
    return p;
}

Если вы сделаете область как автоматическую переменную, то есть без какого-либо классификатора типа, она будет уничтожена, когда управление вернется из вызываемой функции. Когда объявлено как статическое, вы можете правильно получить значение области из основного. Таким образом, чтобы она сохраняет свою ценность, мы делаем ее статичной.