私はC言語を新しくしており、NREL available hereからいくつかのコードを理解しようとしていますので、Rで同様の機能をプログラムすることができます。把握するために:私はPDATはPOSDATA構造体へのポインタで、ヘッダファイルから、私が知っていることを理解しC言語でのアンパサンドの使用
if (pdat->function & L_DOY)
:特に
long S_solpos (struct posdata *pdat)
{
if (pdat->function & L_DOY)
doy2dom(pdat);
}
を、どのような評価基準がに求めています「関数」は、さまざまなintを含むposdata構造の変数ですGERコード:
struct posdata
{
int function;
とL_DOYは、1つのそのような関数とすることができること:
/*Define the function codes*/
#define L_DOY 0x0001
#define L_GEOM 0x0002
#define L_ZENETR 0x0004
私はif文がPDAT内の関数の変数がL_DOY用のコードに対応するかどうかをチェックしていることを前提としています。しかし、私はC言語ではまだまだ新しく、このようなif文でアンパサンドを使用する例や説明を見つけることができませんでした。
ご協力いただきありがとうございます。
https://en.wikipedia.org/wiki/Bitwise_operations_in_C#Bitwise_AND_.22.26.22 – Adrian
単一のアンパサンドはブール代数のビット単位のAND演算子で、しばしばビットマスクとして使用されます。これらの概念に精通していない場合は、googleまたはwikipediaを参照して説明してください。 –
[C言語での&(AND)演算子の使用は何ですか?](http://stackoverflow.com/questions/24836647/what-is-use-of-and-operator-in-c-language) –