ios - Objective C " * " syntax and usage -


i re-writing particle filter library of ios in swift objective c available on bitbucket , have question regarding syntax of objective c cannot understand.

the code goes follows:

- (void)setrssi:(nsinteger)rssi { _rssi = rssi;  // ignore zeros in average, stddev -- clear value before setting // prevent old values hanging around if there's no reading if (rssi == 0) {     self.meters = 0;     return; }     self.meters = [self metersfromrssi:rssi];  nsinteger* pidx = self.rssibuffer; *(pidx+self.bufferindex++) = rssi;  if (self.bufferindex >= rssibuffersize) {     self.bufferindex %= rssibuffersize;     self.bufferfull = yes; }     if (self.bufferfull) {      // calculate trailing mean , std dev when have enough data     double accumulator = 0;     (nsinteger = 0; < rssibuffersize; i++) {         accumulator += *(pidx+i);     }     self.meanrssi = accumulator / rssibuffersize;     self.meanmeters = [self metersfromrssi:self.meanrssi];      accumulator = 0;     (nsinteger = 0; < rssibuffersize; i++) {         nsinteger difference = *(pidx+i) - self.meanrssi;         accumulator += difference*difference;     }     self.stddeviationrssi = sqrt( accumulator / rssibuffersize);     self.meanmetersvariance = abs(                                   [self metersfromrssi:self.meanrssi]                                   - [self metersfromrssi:self.meanrssi+self.stddeviationrssi]                                   ); }       } 

the class continues more code , functions not important , not understand these 2 lines

nsinteger* pidx = self.rssibuffer; *(pidx+self.bufferindex++) = rssi; 

variable pidx initialized size of buffer defined , in next line size of buffer , buffer plus 1 equal rssi variable passed parameter in function.

i assume * has reference can't figure out purpose of line. variable pidx used in function calculating trailing mean , standard deviation.

let explain code:

  1. nsinteger* pidx = self.rssibuffer; means getting pointer of first value of buffer.
  2. *(pidx+self.bufferindex++) = rssi; means setting value of buffer @ index 0+self.bufferindex rssiand increase bufferindex 1. @jakub vano point out.

in c++,

int self.rssibuffer[1000]; // assume have buffer self.rssibuffer[self.bufferindex++] = rssi 

Comments

Popular posts from this blog

toolbar - How to add link to user registration inside toobar in admin joomla 3 custom component -

linux - disk space limitation when creating war file -

How to provide Authorization & Authentication using Asp.net, C#? -