C90 - C99: структура регистра - PullRequest
3 голосов
/ 24 июня 2010

Законна ли структура регистра?С точки зрения стандартов и (отдельно от стандартов) в Gcc?

Ответы [ 3 ]

3 голосов
/ 24 июня 2010

Да, это законно, однако, поскольку register - это всего лишь подсказка компилятору о том, что он может попробовать, в действительности ни одна реализация не должна его слушать.Также легко создать структуру, которая не может быть сохранена в пределах пространства, выделенного в регистрах.

Как только вы начинаете подходить так близко к машинно-зависимым проблемам, их роль в стандартах становится просто предположением, поскольку аппаратное обеспечение меняется так,одно и то же невозможно на этом уровне во всех архитектурах.

3 голосов
/ 24 июня 2010

Да. (Нет цитирования, просто нет никакого запрета на это. Есть примечание, предполагающее, что использование регистра с массивами допустимо, и массивы являются гораздо более гражданами второго сорта в C, который строит).

2 голосов
/ 24 июня 2010

Да, это действительно.

register как ключевое слово просто не означает, что переменная должна храниться в регистре. (С в принципе не имеет понятия для этого). Это просто означает, что не берет адрес этой переменной .

...