[Python-Dev] ssize_t branch merged

Travis E. Oliphant oliphant.travis at ieee.org
Sat Feb 18 05:17:00 CET 2006


Tim Peters wrote:
> [Travis Oliphant]
>>>Maybe I have the wrong version of code. In my pyport.h (checked out
>>from svn trunk) I have.
>>>>#define PY_SSIZE_T_MAX ((Py_ssize_t)(((size_t)-1)>>1))
>>>>What is size_t?
>>> size_t is an unsigned integral type defined by, required by, and used
> all over the place in standard C. What exactly is the compiler
> message you get, and exactly which compiler are you using (note that
> nobody else is having problems with this, so there's something unique
> in your setup)?

I'm very sorry for my silliness. I do see the problem I was having now. 
 Thank you for helping me out. I was assuming that PY_SSIZE_T_MAX 
could be used in a pre-processor statement like LONG_MAX and INT_MAX.
In other words
#if PY_SSIZE_T_MAX != INT_MAX
This was giving me errors and I tried to understand the #define 
statement as an arithmetic operation (not a type-casting one). I did 
know about size_t but thought it strange that 1 was being subtracted 
from it.
I would have written this as (size_t)(-1) to avoid that confusion. I do 
apologize for my error. Thank you for taking the time to explain it.
I still think that PY_SSIZE_T_MAX ought to be usable in a pre-processor 
statement, but it's a nit.
Best,
-Travis
>> No. (size_t)-1 casts -1 to the unsigned integral type size_t,

That's what I was missing I saw this as subtraction not type-casting. 
My mistake
-Travis


More information about the Python-Dev mailing list

AltStyle によって変換されたページ (->オリジナル) /