1
xenme 2018-12-24 14:54:42 +08:00
那只是 C++语言的特性帮你调用了而已。
C 没有类似的特性。 |
2
catror 2018-12-24 15:01:03 +08:00 via Android
可以了解一下 gcc 的 constructor
|
3
zyp0921 2018-12-24 15:05:30 +08:00
static void __attribute__((constructor(112))) __reg_srv_name_service()
{ } |
8
across 2018-12-24 15:41:58 +08:00
你该说清楚在什么情况下触发调用。
说是自动调用,都是有触发器的啊。 |
9
Earl OP |
10
wevsty 2018-12-24 17:01:24 +08:00
不是很明白为什么要有这样的需求。
要求在程序在启动的时候执行个函数那直接在 mian 函数里面调用不就行了?干嘛要舍近求远? |
11
shuax 2018-12-24 17:15:33 +08:00
http://cpp.sh/43i34
手动调用行不行 |
12
wizardoz 2018-12-24 17:18:30 +08:00
写代码的过程不就是创造自动化的过程吗?
|
13
zhujinliang 2018-12-24 17:21:01 +08:00 via iPhone
用宏包装一下?
|
15
shuax 2018-12-24 17:34:58 +08:00
|
16
deanzh16 2018-12-24 17:41:47 +08:00 via Android
Try lambda ?
static int x = [ ]( ) { foo(); return 0; }( ); |
18
ChrisTsai 2018-12-24 17:47:56 +08:00
@ysc3839 #14 估计是类似于 linux 内核 module_init 的作用。
据我所知,module_init 就是采用楼上所说的 gcc 的 constructor,至于 VS 下就不太清楚了。。 要不尝试一下 MinGW 编译? |
19
Earl OP |
21
wevsty 2018-12-25 16:15:02 +08:00
|