fread order of operations

3 views (last 30 days)
Jim Hokanson
Jim Hokanson on 18 Mar 2011
Does Matlab enforce some sort of order of executions for fread statements?
For example, if we did: fread(fid,1,'int8')*3 + fread(fid,1,'uint8')*4
Would the 'int8' read always execute before the 'uint8'?
I would have no reason to expect this, and it seems like either this should be the case, or this should show an mlint warning.

Accepted Answer

Jan
Jan on 18 Mar 2011
In the documentation I find:
Operator precedence ... Within each precedence level, operators have equal precedence and are evaluated from left to right.
This means, that the left FREAD is performed at first ever.
  2 Comments
Walter Roberson
Walter Roberson on 18 Mar 2011
Though I wonder if this is strictly followed with JIT ?
Jan
Jan on 19 Mar 2011
The execution order is a very fundamental and documented behaviour. Of course it is possible, that the JIT has such a serious bug. But I do not find a corresponding bug report.
What about: a(fread(fid, 1, 'uint8')) = fread(fid, 1, 'uint16')
The UINT16 is read at first, but I can anyone find a corresponding statement in the documentation.

Sign in to comment.

More Answers (0)

Categories

Find more on MATLAB Report Generator in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!