簡體   English   中英

如何將未知類型的指針傳遞給函數?

[英]How to pass pointer of unknown type to function?

我想按值將變量傳遞給函數(我只是為了避免給參數指定類型而使用了指針),以便可以供包含在其中的另一個函數使用。 內部函數可以被賦予任何類型的變量。

我已經嘗試過使用通用指針(void *),但是它告訴我“'void *'不是指針到對象的類型”。 我不想強制轉換指針,因為使用指針的全部目的在於它是通用的。

void print_string(char *string, void *variable) {
  Serial.print(string);
  Serial.print(": ");
  Serial.print(*variable); # This takes a variable of any type (int, float, double, char *);
  Serial.println();
}

我希望能夠提供一個int,double,float或string(char *)。

答案是,盡管不願意,您仍必須進行轉換。 您試圖取消引用指向某個內存位置的指針,但是您沒有給編譯器任何類似於該信息在void *時的大小的信息,因此它無法將其轉換為正確的匯編指令用於訪問該內存。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM