uintptr_t и size_t - то же самое?

Возможный Дубликат:
size_t против intptr_t

Часть моего кода имеет дело с указателями и берет uintptr_t , как введено, так как это должно работать с указателями.

Я теперь должен сделать то же самое с целыми числами, Таким образом, я хочу снова использовать тот код.

<Кодируют> size_t то же самое как uintptr_t ? Я могу изменить внедрение и использовать тот же самый код и для указателей и для целых чисел только, заменяя uintptr_t с size_t ?

6
nl ja de

3 ответы

size_t has to be big enough to contain the size of the largest possible object. uintptr_t must be big enough to contain any pointer. Given this, it is more or less guaranteed that sizeof(uintptr_t) >= sizeof(size_t) (since all of the bytes in the largest possible object must be addressable), but not more. On machines with linear addressing, they probably will be the same size. On segmented architectures, on the other hand, it is usual for uintptr_t to be bigger than size_t, since an object must be in a single segment, but a pointer must be able to address all of the memory.

15
добавлено

Это зависит от внедрения (и это включает процессор, ABI, компилятор, стандартные библиотеки). У вас нет гарантии, которая size_t совпадает с uintptr_t ; но это могло произойти (на 32-битном Linux x86 или РУКЕ, оба - 32-битные целые без знака).

И намерение size_t состоит в том, чтобы быть размером (особенно ассигнованных кусков памяти), в то время как намерение uintptr_t состоит в том, чтобы быть целым без знака того же самого диаметра долота как указатели.

2
добавлено

У различного компилятора есть различный result.if, который вы хотите, они имеют тот же самый эффект, необходимо удостовериться, что компилятор должен быть на 32-битном Linux x86 или РУКЕ, и это исправится.

1
добавлено
pro.cxx
pro.cxx
3 049 участник(ов)

C/C++ chat 0. Простые вопросы, лабы и о IDE — в чат новичков @supapro 1. Не хамим, не переходим на личности, не вбрасываем утверждения без доказательств 2. No Ads, offtop, flood Объявления о вакансиях и евенты - в лс @AlexFails https://t.me/ProCxx/259155

supapro.cxx
supapro.cxx
1 925 участник(ов)

Чат для тех, кто немного знает C++, простые вопросы по реализации, синтаксису и ide – сюда, а для другого есть: /Главный чат по серьезным вопросам — @ProCxx /Чат по обсуждению всего — @fludpac

C++ Russia
C++ Russia
384 участник(ов)

Сообщество разработчиков C++ в Telegram.

cxx.Дискуссионная
cxx.Дискуссионная
298 участник(ов)

это не двач, общайтесь вежливо; разговор на почти любые темы; Не согласны с баном? В лс @AlexFails, @ivario

C++ для маленьких и тупых
C++ для маленьких и тупых
105 участник(ов)

Лоу левел (по среднему IQ участников) чатик ExtremeCode @extremecode Флудилка @extremecode_rest