は定義されています。#defineからCスタイルのキャストを削除するにはどうすればプリプロセッサ#ifで使用できますか?私は、次のプリプロセッサを使用したい
[サードパーティのヘッダー(変更することはできません)]彼らはこのように比較され
#define SWCI_VERSION_MAJOR (unsigned char) 4
#define SWCI_VERSION_MINOR (unsigned char) 16
:
[私の実装]
#if SWCI_VERSION_MAJOR >= 4 && SWCI_VERSION_MINOR >= 16
次に、私は:
致命的なエラーC1017:無効な整数定数式は
私は(unsigned char型)なしでそれらを定義する場合ディレクティブは受け入れられることに気づいたが、私は希望ので、私は定義にアクセスできません可能であれば、問題を回避する。
可能性のある重複したような何か[何を意味するかコンパイルエラーが「トークンが前二項演算子を行方不明」ん?](http://stackoverflow.com/questions/21338385/what-does-the-compiler-error- token-meanの前にmissing-binary-operator-operator) – BoBTFish
エラーメッセージは、別のコンパイラであるため、http://stackoverflow.com/q/21338385/1171191とは異なりますが、エラーは同じです。 AShellyの答えが説明しているように、プリプロセッサでは発生しないので、 '#if'でキャストします。 – BoBTFish
@ j4nSoloあなたが言及したようにそれを比較すれば、あなたはMACROを(unsigned char)なしで定義するのを妨げているでしょうか? –