鑒于這intptr_t是可選的并且ptrdiff_t是強制性的,將p - nullptr是一個很好的替代品,從用with而不是?(intptr_t)p表示的結果轉換回來。它在定義的實作上與 IIUC 語意等效,但也可以按預期作業。nnullptr n(decltype(p))nintptr_t
如果我在上面是對的,為什么標準不允許不實施intptr_t?似乎因此提供的自由并不是特別有價值,只是一組兩個簡單的本地源代碼轉換(或優化的等效項)來剃掉。
uj5u.com熱心網友回復:
不 ptrdiff_t,只需要足夠大以包含單個物件,而不是整個記憶體空間。如果本身不是空指標,則會(char*)p - (char*)nullptr 導致未定義的行為。p
p - nullptr沒有演員表是不正確的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/431086.html
上一篇:voidmainc語言編程中的下標值既不是陣列也不是指標也不是向量
下一篇:Otp未在資料庫中發布
