Secp256k1

C secp256k1:成語“(void)data;”的目的是什麼?

  • June 3, 2017

文件中包含以下程式碼secp256k1.c

static void 
default_illegal_callback_fn( 
 const char* str, 
 void* data) 
{
 (void)data;
 fprintf(stderr, "[libsecp256k1] illegal argument: %s\n", str);
 abort();
}

有人可以解釋這條線的目的(void)data;嗎?我很確定有一個,但我不知道它是什麼:(

沒有(void) data;, gcc 會抱怨data是一個未使用的變數。這在整個程式碼庫中使用,特別是對於上下文對象,以處理 API/一致性原因所需但實際上並不需要的參數。

請注意,如果沒有此演員表,data將不會在此函式中使用。這可能是為了防止編譯器警告未使用的變數,同時將參數保留在函式簽名中。

引用自:https://bitcoin.stackexchange.com/questions/54093