Sri*_*nth 3 c c++ backwards-compatibility
我有一个结构供别人使用,他们也依赖sizeof(struct S).下面是我的结构,
struct S{
int aVar1;
void *ptr1;
}
Run Code Online (Sandbox Code Playgroud)
将来,我可能会添加新成员(现在还不确定),比如..
struct S{
int aVar1;
void *ptr1;
int aVar2;
void *ptr2;
}
Run Code Online (Sandbox Code Playgroud)
我知道这打破了与依赖用户的向后兼容性sizeof.
为了避免这种情况,我计划在struct中添加一些可以在将来使用的虚拟指针.
struct S{
int aVar1;
void *ptr1;
void *dummyptr1;
void *dummyptr2;
void *dummyptr3;
void *dummyptr4;
void *dummyptr5;
void *dummyptr6;
}
Run Code Online (Sandbox Code Playgroud)
任何更好的解决方案请保持向后兼容性?
不要这样做.
在结构中添加新成员甚至不安全,希望现有成员保持其当前的填充安排.C和C++标准都没有在这方面做出任何保证.
唯一安全的方法是从头开始构建新结构并添加新的API函数.
| 归档时间: |
|
| 查看次数: |
723 次 |
| 最近记录: |