只是好奇在语法上是否可以做这样的事情:
static (void) someFunc();
而不是,说,
static bla = someFunc();
以便someFunc
在我们通过那段代码时只调用一次?顺便说一下, (void) 代码段无法编译。
只是好奇在语法上是否可以做这样的事情:
static (void) someFunc();
而不是,说,
static bla = someFunc();
以便someFunc
在我们通过那段代码时只调用一次?顺便说一下, (void) 代码段无法编译。
不,static
仅用于值初始化。
要记录您对返回值不感兴趣,您可以编写:
static int unused = (someFunc(), void(), 0);
这void()
是为了防止逗号运算符被调用;您也可以(void(someFunc()), 0)
使用函数转换来编写。
总是有的pthread_once
。http://pubs.opengroup.org/onlinepubs/7908799/xsh/pthread_once.html
除了在函数内部移动警卫之外,我不知道这怎么可能。