For future reference:
! - NOT,
this must be false to continue
!= - NOT equal to
N, for comparing non-boolean (numerical) values
== - EQUAL to
N, for comparing non-boolean (numerical) values
&& - AND,
this AND
that = both must be true to continue
|| - OR,
this OR
that = one or both must be true to continue
% - modulus or mod, aka division returning only the remainder e.g. 17 mod 5 = 2 (2 being the remainder from 17 divided by 5).
For bitwise operations you use only one & and | for "AND" and "OR."
And then if you are doing C++ you use a lot of reference passing which has a
& precede an argument in a function call. This just means "here is the address to the beginning of the object or data" which is typ. only 32 bits (4 bytes) in size instead of sending the entire chunk of data as an argument, which can be many, many bytes large.
Code:
OSErr theErr = noErr;
CInfoPBRec pBlock; // this is a very large data struct
memset(&pBlock, 0, sizeof(pBlock));
...
theErr = PBSetCatInfoSync(&pBlock);
if (theErr != noErr) return theErr;