[英]In C, does a cast from char* to void* do anything?
請查看下面提到的代碼片段,並告訴我其中的區別?
int main()
{
struct sockaddr_in serv_addr, cli_addr;
/* Initialize socket structure */
bzero((char *) &serv_addr, sizeof(serv_addr));
}
現在,如果我在不進行類型轉換(char *)
情況下做類似的事情,那我也將做同樣的事情嗎? 有人可以澄清嗎?
/* Initialize socket structure */
bzero( &serv_addr, sizeof(serv_addr));
由於第一個參數為void *
,因此只需要使用C ++進行轉換。
在C,這是沒有必要的,為void *
加入1正是如此,你會不會需要將其轉換為或從其他對象2點的指針。 (與malloc()
和其他處理void *
s的函數類似)
不需要AnyType*
轉換,因為bzero()
接受void*
作為第一個參數,並且AnyType*
可以隱式轉換為void*
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.