0
我正在尋找一種使用宏初始化結構的方法。
我想按照這種方式初始化它。
使用宏初始化結構
struct st_test {
int first;
int second;
};
STRUCT_INIT (name_of_var) = {.first = 1, .second = 2};
我該怎麼做?
我找到答案這裏是
#include <stdio.h>
#include <stdlib.h>
#define SEC_INIT_FN(type, var,...) \
__VA_ARGS__ struct _SIF_ { \
type (* fn) (int i); \
} var; \
static void __sec_init_fn_reg_##var (void) \
__attribute__((__constructor__)) ; \
static void __sec_init_fn_reg_##var (void) \
{ \
var.fn(10); \
} \
__VA_ARGS__ struct _SIF_ var
void test_fn (int i) {
printf("Test Function \n");
printf("%d \n", i);
}
SEC_INIT_FN (void, T) = {.fn = test_fn };
int
main(void)
{
printf ("Main Function\n");
exit(EXIT_SUCCESS);
}
具有良好的時間:)