たとえばstatic const struct
、ヘッダー ( .h
) ファイルに次のような階層を作成するとします。
static const struct {
struct {
char STATIC /* = 0 */;
char DYNAMIC /* = 1 */;
} ALLOCATION;
struct {
char TABLE /* = 0 */;
char LIST /* = 1 */;
char TREE /* = 2 */;
} STRUCTURE;
} FOO_STRATEGY = { {0, 1}, {0, 1, 2} };
foo_t *foo_create(char allocation_strategy, char structure_type);
次に、次のように使用されます。
foo_t *foo = foo_create(FOO_STRATEGY.ALLOCATION.STATIC, FOO_STRATEGY.STRUCTURE.TREE);
私は2つの部分からなる質問があると思います:
- これは期待どおりに機能しますか?
- なぜ他の人はこれをしないのですか?