ここに同様の質問があります任意のポインターにバイトオフセットを追加するポータブルで安全な方法
しかし、すべての答えはptr = (SomeType*)...で始まっています。これは、このマクロを使用したいときに、ポインターの型を知る必要があることを意味します。
#define ptradd(ptr, delta) (size_t) ptr = (size_t) ptr + (size_t) delta
ptradd(prect, offset);
VC では動作しますが、GCC ではエラー lvalue required as left operand of assignmentで失敗します。
GCCで動作させるにはどうすればよいですか?