![](/img/trans.png)
[英]How to implicitly pass a *this pointer to a function pointer in struct
[英]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.