0
Modbus/RS-485アプリケーション用のレジスタプロトコルを実装するいくつかのデータ構造を定義しました。私はParticle電子ボードのためにこれをコンパイルしています。構造内のDyanmicデータ型
構造にさまざまなデータ型を追加するにはどうすればよいですか?私は(void)も試しました。これも可能ですか?
char datatype[10];
としてそれを渡します:
typedef struct {
uint16_t registerAddress;
uint8_t registerSize;
void* dataType;
char description[50];
} _rgRegister;
static const _rgRegister PressureParameterRegister[6]={
{0x038, 2, float, "Measured value"},
{0x040, 1, ushort, "Parameter Id = 2 (pressure)"},
{0x041, 1, ushort, "Units Id"},
{0x042, 1, ushort, "Data Quality Id"},
{0x043, 2, float, "Off line sentinel value (default = 0.0)"},
{0x045, 1, char, "Available Units = 0x0005"}
};
他のオプションは、私のようにそれを宣言している
_rgRegister.datatype = "float"
そして私は、動的にデータ型をキャストし、いくつかのswitch文を持っている必要がありますデータ。
実行時に変数に自動的にデータ型を割り当てるには、 'auto'キーワードを使用できます。 –
また、C++の 'typeid-> name()'関数を使って、実行時にデータ型を決定することもできます。 –