相关疑难解决方法(0)

在Python/PyCharm中明确声明变量未使用

有没有办法在PyCharm或Python中将变量声明为未使用,因此您可以明确告诉编译器不要发出警告?

我不是在讨论为程序员命名未使用的变量的惯例(通常命名为"_"或"__"),而是一个显式地将变量标记为编译器未使用的选项,例如在循环中.我也不仅仅想要禁用检查.

我听说你可以在PyDev中通过使用"unused"开始变量名来做到这一点,我认为这也可能存在于PyCharm中,但还是找不到它.

python pycharm

17
推荐指数
3
解决办法
5457
查看次数

通用的编译器独立方式在C/C++中实现UNUSED宏

在实现存根等时,您希望避免使用"未使用的变量"警告.多年来,我遇到过UNUSED()宏的一些替代方案,但从来没有一个被证明适用于"所有"编译器,或者标准是气密的.

或者我们为每个构建平台坚持使用#ifdef块?

编辑:由于非c兼容替代品的许多答案,我想澄清我正在寻找一个对C和C++,所有口味等都有效的定义.

c c++ macros compiler-warnings

16
推荐指数
1
解决办法
6369
查看次数

在C中定义未使用的参数

我需要使用pthreat但我不需要将任何参数传递给函数.因此,我将NULL传递给pthread_create上的函数.我有7个pthreads,所以gcc编译器警告我有7个未完成的参数.如何在C编程中将这7个参数定义为未使用?如果我没有将这些参数定义为未使用,是否会导致任何问题?提前感谢您的回复.

void *timer1_function(void * parameter1){
//<statement>
}

int main(int argc,char *argv[]){
  int thread_check1;
  pthread_t timer1;
  thread_check1 = pthread_create( &timer1, NULL, timer1_function,  NULL);
    if(thread_check1 !=0){
        perror("thread creation failed");
        exit(EXIT_FAILURE);
    }
while(1){}
return 0;
}
Run Code Online (Sandbox Code Playgroud)

c gcc posix pthreads

8
推荐指数
2
解决办法
1万
查看次数

在GCC中编译时使用`-Wextra`标志的缺点

我知道应该总是用两者编译-Wall并且-Wextra因为它们启用警告并帮助我们理解我们的错误,如果有的话.

我已经读过-Wextra不建议使用编译器标志,因为它太冗长了很多误报.

读这篇文章我很惊讶.所以我开始谷歌搜索它,但我没有得到任何答案,因为所有搜索结果显示" -Wextra旗帜做什么?".

所以,我的问题是

  • 在哪种情况下,-Wextra旗帜会发出不必要的警告?
  • 是否可以阻止该-Wextra标志启用导致GCC发出这些类型警告的其他标志?

c gcc code-analysis compiler-flags compiler-warnings

8
推荐指数
1
解决办法
2156
查看次数

函数指针强制转换为 void 而不被调用

在细读一些 STM32 中间件代码时,我遇到了这个非常奇怪的行并且无法解析它。基本上就是,

(void)(foo);
Run Code Online (Sandbox Code Playgroud)

这不是空指针转换 - 这很简单。它不是调用函数并将其返回值转换为 void - 这将需要更多的括号。它看起来像一个没有左值的右值。这只是防止功能被优化掉的空操作吗?或者它实际上有什么作用?

这是在上下文中。

// SVCCTL_EvtAckStatus_t is just an enum typedef

typedef SVCCTL_EvtAckStatus_t (*SVC_CTL_p_EvtHandler_t)(void *p_evt);

void SVCCTL_RegisterCltHandler( SVC_CTL_p_EvtHandler_t pfBLE_SVC_Client_Event_Handler )
{
#if (BLE_CFG_CLT_MAX_NBR_CB > 0)
  // Ignore all this
  SVCCTL_CltHandler.SVCCTL_CltHandlerTable[SVCCTL_CltHandler.NbreOfRegisteredHandler] = pfBLE_SVC_Client_Event_Handler;
  SVCCTL_CltHandler.NbreOfRegisteredHandler++;
#else
  // This is the weird stuff
  (void)(pfBLE_SVC_Client_Event_Handler);
#endif

  return;
}

Run Code Online (Sandbox Code Playgroud)

c embedded syntax compiler-optimization

2
推荐指数
1
解决办法
76
查看次数