`` *Gerçekten* bir `std değerlendirmek boyutu::size_t`? Olabilir mi?
Aşağıdaki standart geçidi kullan:
[C 11: 5.3.3/6]:
sizeof
sizeof...
sonucu 4* *türü bir sabittir.[ Not:std::size_t
standart başlık<cstddef>
(18.2) olarak tanımlanır.—son not ]
Şimdi:
[C 11: 18.2/6]:
tipisize_t
herhangi bir nesne bayt cinsinden boyutunu içermesi için yeterince büyük uygulama tanımlı bir işaretsiz tamsayı türüdür.
Kabul ediyorum, geçit vermez gerektiren size_t
Bir tür alias tanımlı typedef
ama madem ki açıkça belirtildiği üzere yapılan mevcut standart başlık <cstddef>
, bence elimizden alıp okuyan başarısız vardır <cstddef>
kaldırmak herhangi bir garanti size_t
olacaktır kullanılabilir bir program.
Ancak, ilk teklifi göre, ne olursa olsun 14* *türünde bir ifade elde edebiliriz.
We can actually demonstrate both of these facts:
int main()
{
typedef decltype(sizeof(0)) my_size_t;
my_size_t x = 0; // OK
std::size_t y = 1; // error: 'size_t' is not a member of 'std'
}
std::size_t
program için görünür değil, ama sizeof(0)
hala bize verir mi? Gerçekten mi?
Bu nedenle 5.3.3/6
olduğunu söylemek doğru değilkusurluaslında, "her ne kadar std::size_t
giderir aynı tür", amadeğil20* *kendisi?
Tabii, iki olursa std::size_t
ama, yine de, hiçbir yerde gerçekten gerekli bu. diğer bir türü ise bir ve aynıdır.
CEVAP
Sadece görev sizeof(expr)
türü standart std::size_t
türü ile aynıdır. sizeof(expr)
adı std::size_t
kullanılabilir kılan bir yetki yok ve std::size_t
sadece dahili ayrılmaz tür bir isim, çünkü bu gerçekten bir sorun yok.
C boolean boyutu ne#? Gerçekten 4-bayt...
Nasıl/node.js(bkz: cxx bir derleyici o...
Nasıl Eclipse projemden bazı klasörler...
Graphviz azaltılması grafik boyutu...
Özyinelemeli bir işlev satır içi olabi...