我認爲在C中是不可能的,但要求驗證這一點。是否有可能在沒有這種類型的實變量的情況下在結構成員之間進行算術運算例如:沒有結構對象的C指針算術
typedef struct _s1
{
int a;
int b;
int c;
} T1;
我想查看「c」成員與結構開始相比的偏移量。這很容易,如果我有變數:
T1 str;
int dist = (int)&str.c - (int)&str;
但我的結構太大,它沒有成員在RAM(只在EEPROM中)。我想做一些地址計算,但不想定義RAM成員。我可以用結構指針而不是結構變量來完成這項工作(它只需要4個字節),但這種情況對我來說很有意思。
定義假指針,看到了什麼? – Cthulhu
這可能已經在這裏得到了答案,並在其他地方討論過數十億次。我想答案應該是谷歌搜索了。你有Google嗎? –
如果你的結構真的很大,那麼將它的地址和它的一個成員的地址轉換爲int可能會導致你的悲傷(指針是4/8字節,int只能是2字節大小,但大多數實現使用4個字節) –