3 ms·
There is no pointer arithmetic in the line: struct usb_line6 *line6 = &podhd->line6; Offset is calculated "below the hood". Pointer arithmetic is defined
by ehmmm 11y ago
There is no pointer arithmetic in the line:
struct usb_line6 *line6 = &podhd->line6;
Offset is calculated "below the hood". Pointer arithmetic is defined with arithmetic operands: +,-
-> and . are not arithmetic operands.
- jwatte 11y agoYou sound very sure of yourself. If you look at the definition of the -> and [], you might learn something!
- ehmmm 11y agoClearly, you don't have anything constructive to say, so you have to resort to ad hominem. [] operator doesn't have any place in this debate.
- spoiler 11y agoWell, as far as I understand it, `->` works in a similar fashion to `[]`; the difference being that one behaves on arrays while the other on structs. What @jwatte tried to say is that `->` works like this: // foo is struct thingity* &foo->bar == foo + offsetof(struct thingity, bar); The `[]` does a similar thing: // s is char* *(s+i) == s[i]
- ehmmm 11y agoSure, &foo->bar looks like foo + offsetof(struct thingity, bar), but there is no pointer arithmetic involved since C doesn't specify how the member access ( -> or . ) is actually calculated. It does however specify that [] operator is equivalent to pointer arithmetic. But we are talking ->,. operators and not [].