Я попробовал следующий код
#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;
?
или Где я ошибаюсь ?!