Почему пустая структура в C является нарушением ограничения? Почему это правило изменяется на C++?Пустая структура в C vs пустая структура в C++
Есть ли исторические причины?
Почему пустая структура в C является нарушением ограничения? Почему это правило изменяется на C++?Пустая структура в C vs пустая структура в C++
Есть ли исторические причины?
Поскольку у вас нет наследования в C, они вам не нужны. Если вы просто хотите иметь различаемый тип указателя, вы можете использовать указатели для неполных типов.
struct opaque;
struct opaque* stranger = 0;
должен работать нормально.
+1 от меня: ты выиграл мой аргумент с @Nawaz :) –
+1 за то, что напомнил мне об этом! – Nawaz
Я понял, что вы специалист по макроэкономике.Не могли бы вы посмотреть http://stackoverflow.com/questions/5355241/generating-function-declaration-using-a-macro-iteration, есть ли какие-либо улучшения? Благодаря! –
Мое предположение заключается в следующем:
В C, не существует наследование, шаблоны, и перегрузка функций - три основные причины, которые мы используем пустые Структуры в С ++ - в качестве базового интерфейса, в качестве параметра шаблона, как чтобы помочь перегрузить разрешение.
Можете ли вы придумать какое-либо реальное использование пустой структуры в C?
Пустые структуры могут использоваться ручкой, нет? [Сравнение ручек: пустые классы против неопределенных классов void void *] (http://stackoverflow.com/questions/4525847/handles-comparison-empty-classes-vs-undefined-classes-vs-void) – Nawaz
@Nawaz: Возможно, возможно, я специально упомянул, что это было просто предположение :) –
@Armen: Это означает, что ваша догадка кажется неправильной. Пустые структуры в C можно использовать во многих случаях, особенно там, где используется 'void *'! – Nawaz
http://stackoverflow.com/questions/755305/empty-structure-in-c –
Возможный дубликат [Каков размер пустой структуры в C?] (Http://stackoverflow.com/questions/ 1626446/what-is-size-of-the-empty-struct-in-c) – Nawaz
@Nawaz: Это другой вопрос. Фактический вопрос - «почему», а не «что». –