私はsal.h
ヘッダーをc
に見ていて、$
がプロシージャのパラメータでよく使用されることがわかりました。これは何ですか? AFAIK、C
には許可されていません。例えば
(MS C/C++コンパイラから\ sal.h含む)
171 #define _Pre_z_ _Pre2_impl_(_$notnull, _$zterm)
私はsal.h
ヘッダーをc
に見ていて、$
がプロシージャのパラメータでよく使用されることがわかりました。これは何ですか? AFAIK、C
には許可されていません。例えば
(MS C/C++コンパイラから\ sal.h含む)
171 #define _Pre_z_ _Pre2_impl_(_$notnull, _$zterm)
C標準は、識別子は、文字、数字、および下線を含むことができることを指定します。それでおしまい。コンパイラ(GCCなど)の中には、ドル記号の使用を許可するものもありますが、標準外で実行しているので、この機能を使用するとプログラムが移植できなくなります。
このドル記号は私のために問題です。あなたは何か回避策を提案できますか?私は第三者のコンパイラでcヘッダをコンパイルしようとしており、それを認識しません。私が何か他のもので$記号を変えるだけかもしれませんか?どう思いますか? –
おそらく、このコードは移植可能ではないかもしれません。確かに、識別子を変更するとコンパイルできますが、他のGCC固有のものや他の移植不可能なものがあるかもしれません。 –
コンパイラとは何ですか? – axiac
どのコンパイラ?実装に依存するかもしれません.. –
@axiac 'c'コンパイラは文句を言っていません。これは私の好奇心です、なぜそれが不平を言わないのですか? –