構文的に次のようなことが可能かどうか、ちょっと興味があります:
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)
関数キャストを使用して記述することもできます。
There's always pthread_once
. http://pubs.opengroup.org/onlinepubs/7908799/xsh/pthread_once.html
関数内でガードを移動する以外に、それがどのように可能になるかわかりません。