私は最近、次のようなコードに出くわしました。
if(sizeof(var,2) == 4) { ... }
(var
タイプはどこですか)
sizeof
オペレーターにとって2つの引数のように見えるものを見て、私は非常に驚きました。ISO / ANSI C99規格をすばやくスキャンしても、秘密は見つかりませんでした。そこにコンマを許可する文法の読み方を思い付くことができませんでした。
Googleコードを検索すると、いくつかのPPCコードでこの構文の例を見つけることができました。
これはPPC固有の構文ですか?どういう意味ですか?
編集:私が見ていたものとリンクされたコードの両方が、WindRiverDiabコンパイラに固有の構文であることがわかりました:
sizeof(type、int-const):
int-constが0の場合、 sizeofはタイプのバイト単位のサイズを返します。
int-constが1の場合、 sizeofは型の配置を返します。
int-constが2の場合、 sizeofは、型の型を指定する整数定数を返します。値については、 Diab C /C++ユーザーズガイドで「sizeof演算子」を検索してください 。
うわー、彼らは本当にsizeof
演算子の意味を過負荷にしました。
EDIT2:完全なドキュメントはここにあります:http ://www.vxdev.com/docs/vx55man/diab5.0ppc/c-additi.htm#3001432