From: Gary L. S. <gs...@in...> - 2001-10-24 16:19:03
|
Pointers in c and C++ are addresses. Depend on the CPU, they could be 32-bit or 64-bit or bigger. Regardless, pointer math can be used, but they need to treated as unsigned int, unsigned long, or unsigned char. So, (ie+ib) >> 1 will give the correct result, if ie and ib are made as unsigned something before the math. When ie and ib are used later on as usual as pointers they will be and still are pointers. e.g. im = ie + m; im will point to the location ie added by offset m, depends m is positive or negative, im will be advanced or moved backwards. However, the word, char, byte, long, long long, boundary alignment is the responsibility of the coder. Hope this help. Gary #-----Original Message----- #From: min...@li... #[mailto:min...@li...]On Behalf Of #Gerald W. Shapiro #Sent: Wednesday, October 24, 2001 9:40 PM #To: Lloyd Dupont #Cc: Lorenzo; mingw #Subject: Re: [Mingw-users] pointer # # #When you add to a C pointer, the addition is understood by the compiler to #mean "go this many locations past the pointer". So ie + 1 would not add #one to the numerical value of the address, but would compute the address #of the next location that would store an integer. # #You maybe could cast the addresses as an integer type and do math on them, #but be careful of overflow. # #Better solution is to pass only a pointer to the head of the list, and #integer offsets within the list. Do math on the offsets. So if ie is an #int and ib is an int, and head is int* to the first in the list, then # #m = (ie + ib)/2; #im = head + m; # #gerald # #On Wed, 24 Oct 2001, Lloyd Dupont wrote: # #> Lorenzo wrote: #> #> > now i use: #> > im = (ib + ((ie - ib) / 2)); #> > #> > Is the best way? #> #> yes ! #> hum, but #> im = ib + (ie - ib) / 2; #> is the same with less parenthesis. #> #> it is your choice. #> #> #> _______________________________________________ #> MinGW-users mailing list #> Min...@li... #> #> You may change your MinGW Account Options at: #> https://lists.sourceforge.net/lists/listinfo/mingw-users #> # # # #_______________________________________________ #MinGW-users mailing list #Min...@li... # #You may change your MinGW Account Options at: #https://lists.sourceforge.net/lists/listinfo/mingw-users |