C++ 什么';变量cast to void在函数体中的用法是什么?

C++ 什么';变量cast to void在函数体中的用法是什么?,c++,function,casting,function-parameter,C++,Function,Casting,Function Parameter,我正在学习编写嵌入式C。我看到一些代码如下 函数的定义如下: void printDebug(const char d1[]){(void)d1;} printDebug("BLE_UART_EVENT"); 它是这样使用的: void printDebug(const char d1[]){(void)d1;} printDebug("BLE_UART_EVENT"); 我不明白它的目的。它给我的印象是一个可调用的char数组?它不是调用char数组,它只是显式地将char数组转换为v

我正在学习编写嵌入式C。我看到一些代码如下

函数的定义如下:

void printDebug(const char d1[]){(void)d1;}
printDebug("BLE_UART_EVENT");
它是这样使用的:

void printDebug(const char d1[]){(void)d1;}
printDebug("BLE_UART_EVENT");

我不明白它的目的。它给我的印象是一个可调用的
char
数组?

它不是调用
char
数组,它只是显式地将
char
数组转换为
void
。(并立即放弃评估结果。)

我认为它只是用来禁止编译器警告未使用的变量

如果该参数根本不被使用,那么将其设置为未命名参数会更清晰

void printDebug(const char[]) {}

它不是调用
char
数组,而是显式地将
char
数组转换为
void
。(并立即放弃评估结果。)

我认为它只是用来禁止编译器警告未使用的变量

如果该参数根本不被使用,那么将其设置为未命名参数会更清晰

void printDebug(const char[]) {}

“char数组是可调用的”是什么意思?您认为这段代码的哪一部分是“调用”字符数组?如果您想知道,
printDebug
,如图所示是不可操作的;不清楚这个练习的目的是什么。@IgorTandetnik老实说,
(void)d1零件。但实际上我不太明白它是如何工作的。这只是一个类型转换,它是一个什么都不做的类型转换。它只是抑制“未使用参数”警告。此处未调用任何内容。它可能是尚未编写的代码的占位符函数,也可能是关闭调试模式时的空函数。只是猜测而已,但它没有任何作用。你说的“char数组是可调用的”是什么意思?您认为这段代码的哪一部分是“调用”字符数组?如果您想知道,
printDebug
,如图所示是不可操作的;不清楚这个练习的目的是什么。@IgorTandetnik老实说,
(void)d1零件。但实际上我不太明白它是如何工作的。这只是一个类型转换,它是一个什么都不做的类型转换。它只是抑制“未使用参数”警告。此处未调用任何内容。它可能是尚未编写的代码的占位符函数,也可能是关闭调试模式时的空函数。只是猜测而已,但它什么也没做。所以我认为,
printDebug
函数可能还没有完全实现。因此需要抑制未使用的参数警告。@smwikipedia我想调试版本会有另一个实现,它实际上会在某个地方打印出来。但对于发布版来说,打印调试信息是毫无意义的。@smwikipedia也许吧。但这仍然是个坏主意。如果没有使用,应该取消它。因此我认为可能
printDebug
函数还没有完全实现。因此需要抑制未使用的参数警告。@smwikipedia我想调试版本会有另一个实现,它实际上会在某个地方打印出来。但对于发布版来说,打印调试信息是毫无意义的。@smwikipedia也许吧。但这仍然是个坏主意。如果未使用,则应取消对其进行修改。