回答編集履歴
3
ミス修正
test
CHANGED
@@ -26,4 +26,6 @@
|
|
26
26
|
|
27
27
|
> そこでstructメンバの値を返すルーチンを共通化したいわけです。
|
28
28
|
|
29
|
+
|
30
|
+
|
29
31
|
その共通化ルーチン内でswitch-caseするしかないだろうと思います。
|
2
追記
test
CHANGED
@@ -9,3 +9,21 @@
|
|
9
9
|
C++は、それのような要求に対するサポートがあります。関数のオーバーロードと呼ばれています。
|
10
10
|
|
11
11
|
ただし、暗黙の型変換による落とし穴もあるので使い方は要注意です。特に整数型同士での呼び分けは[意外に深い落とし穴が開いています](https://dev.activebasic.com/egtra/2016/12/23/939/)。
|
12
|
+
|
13
|
+
|
14
|
+
|
15
|
+
-----------
|
16
|
+
|
17
|
+
【追記】
|
18
|
+
|
19
|
+
「質問への追記・修正」依頼欄を見落としていました。
|
20
|
+
|
21
|
+
uint32_t型で全て返すことが目的なのですね。1, 2, 3的な番号(メンバ変数ID?)を指定して、該当のメンバの値を返したいと。
|
22
|
+
|
23
|
+
番号→メンバ変数変換が必要になりますので、switch-caseを使わざる得ないと思います。(番号が定数なら他にも考えられますが、定数でよいなら変数名でも良いはずなので意味はないです。)
|
24
|
+
|
25
|
+
|
26
|
+
|
27
|
+
> そこでstructメンバの値を返すルーチンを共通化したいわけです。
|
28
|
+
|
29
|
+
その共通化ルーチン内でswitch-caseするしかないだろうと思います。
|
1
微修正
test
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
|
4
4
|
|
5
|
-
C言語の場合は、hoge_para_uint32(), hoge_para_uint8(), hoge_para_uint16()的な関数を意
|
5
|
+
C言語の場合は、hoge_para_uint32(), hoge_para_uint8(), hoge_para_uint16()的な関数を用意して注意深く呼び分けるのが一般的と思います。(暗黙の型変換に要注意)
|
6
6
|
|
7
7
|
|
8
8
|
|