これを行う際に副作用はありますか:
C コード:
struct foo {
int k;
};
int ret_foo(const struct foo* f){
return f.k;
}
C++ コード:
class bar : public foo {
int my_bar() {
return ret_foo( (foo)this );
}
};
C++ コードの周りに がありextern "C"
、各コードは独自のコンパイル ユニット内にあります。
これはコンパイラ間で移植可能ですか?