Perché la struttura vuota in C è una violazione del vincolo? Perché questa regola viene modificata in C++?Struttura vuota in C e struttura vuota in C++
Ci sono ragioni storiche?
Perché la struttura vuota in C è una violazione del vincolo? Perché questa regola viene modificata in C++?Struttura vuota in C e struttura vuota in C++
Ci sono ragioni storiche?
poiché non si ha l'ereditarietà in C, non sono necessari. Se si desidera solo avere un tipo di puntatore distinguibile, è possibile utilizzare i puntatori a tipi incompleti.
struct opaque;
struct opaque* stranger = 0;
dovrebbe funzionare correttamente.
+1 da parte mia: hai vinto la mia discussione con @Nawaz :) –
+1 per avermelo ricordato! – Nawaz
Ho pensato che tu sia un esperto di macro.Potresti vedere http://stackoverflow.com/questions/5355241/generating-function-declaration-using-a-macro-iteration se sono possibili miglioramenti? Grazie! –
La mia ipotesi è questa:
In C, non c'è eredità, modelli, e la funzione di sovraccarico - tre ragioni principali che utilizziamo le strutture vuote in C++ - come interfaccia di base, come un parametro di template, come digitare per aiutare la risoluzione di sovraccarico.
Riesci a pensare a un uso reale di una struttura vuota in C?
Le strutture vuote possono essere usate per gestire, no? [Confronto delle maniglie: classi vuote rispetto alle classi non definite vs. void *] (http://stackoverflow.com/questions/4525847/handles-comparison-empty-classes-vs-undefined-classes-vs-void) – Nawaz
@Nawaz: Forse, forse, ho menzionato specificamente che questa era solo un'ipotesi :) –
@Armen: Ciò significa che la tua ipotesi sembra essere sbagliata. Le strutture vuote in C possono essere usate in molte occasioni, specialmente dove è usato 'void *'! – Nawaz
http://stackoverflow.com/questions/755305/empty-structure-in-c –
possibile duplicato di [Qual è la dimensione di una struttura vuota in C?] (Http://stackoverflow.com/questions/ 1626446/what-is-the-size-of-an-empty-struct-in-c) – Nawaz
@Nawaz: Questa è una domanda diversa. La vera domanda è "perché" non "cosa". –