J'ai été invité dans une récente interview à propos de C++ struct champs d'alignement et theoretized que le C et le C++ suit la même stratégie dans la structure de l'emballage.
Hovewer, c'était une hypothèse erronée. L'enquêteur a dit qu'en général, le C et le C++ sont emballage des structures de différentes manières et il ne faut jamais s'attendre à l'inverse. À mon humble avis, c'est étrange déclaration. Il n'y a pas d' pack "C"
qualificatif pour les structures en C++ pour l'utilisation dans les bilingues C/C++ fichiers d'en-tête.
Donc, dans la pratique, cela pourrait signifier que vous ne pouvez pas créer un struct en C++ et le transmettre à une bibliothèque C parce qu'en général, ses champs seront alignés d'une manière différente et ont des positions différentes. Mais, en fait, la plupart des programmeurs sérieusement compter sur cette interopérabilité, jusqu'au moment où ils permettent de convertir un pointeur vers un C POD struct à une référence à wrapper C++ autour de cette structure avec certaines méthodes d'aide. Pouvez-vous préciser cette question?