Является ли typedef спецификатором класса хранения?

Я попробовал следующий код

#include <stdio.h>

int main(void)
{
    typedef static int sint;
    sint i = 10;

    return 0;
}

и получил следующую ошибку:

error: multiple storage classes in declaration specifiers

Когда я сослался на спецификацию C99, я узнал, что typedef - это класс хранения .

6.7.1 Storage-class specifiers

Syntax

storage-class-specifier:
    typedef
    extern
    static
    auto
    register

Constraints: At most, one storage-class specifier may be 
             given in the declaration specifiers in a declaration

Semantics: The typedef specifier is called a ‘‘storage-class specifier’’ 
           for syntactic convenience only; 

Единственное объяснение, которое я смог найти (на основе некоторого поиска в Интернете и перекрестных ссылок на различные разделы в спецификации C99), было синтаксическим удобством только для упрощения грамматики .

Я ищу обоснование / объяснение того, как имя типа может иметь спецификатор класса хранения?

Разве нет смысла иметь код вроде typedef static int sint; ?

или Где я ошибаюсь ?!

17
задан Sangeeth Saravanaraj 29 December 2011 в 22:27
поделиться