static struct K { int x; };
Это допустимо в C и C ++?
В C это допустимо, но бесполезно .
В C ++ это недействительно.Вы можете указать только класс хранения для объектов и функций.
Действителен в C. Плохо сформирован в C ++
В C ++ спецификаторы extern / static могут применяться только к именам объектов или функций
Выезд
C.1.5 Пункт 7: declarations (7.1.1) ISO C ++ 03
declarations
Нет ... Это недопустимо в C ++. Альтернатива (C ++): безымянное пространство имен
namespace { struct K { int x; }; }
См. Связанную тему:
Превосходство безымянного пространства имен над статическим?
http://ideone.com/YqWd8
http://ideone.com/XtHYy