如何删除特定的警告gcc
How to delete a specific warning gcc
我有一个特定的警告,我想删除/隐藏然后在之后启用它。你知道我怎样才能在不删除所有其他警告的情况下做到这一点吗?
这是我收到的警告
warning: enumeration value 'EtatCCSortie' not handled in switch [-Wswitch]
而且我不需要在开关中实际使用该状态(它是一个状态机)。我有办法不再收到此警告,方法是像这样将状态添加到开关:
while (etatsImprimanteCasImpressionPeriodique != EtatIPSortie)
{
switch (etatsImprimanteCasChangementCartouche)
{
....
case EtatCCSortie:
break;
但我不必添加它,因为它永远不会执行 (while !=)。这就是为什么我正在寻找一种方法来禁用此特定警告,然后在此切换后立即启用它。
Ps:我知道警告的重要性,我只需要一种删除它的方法。
enum somenum {
EtatIPSortie,
EtatCCSortie,
};
int etatsImprimanteCasImpressionPeriodique;
enum somenum etatsImprimanteCasChangementCartouche;
void func() {
while (etatsImprimanteCasImpressionPeriodique != EtatIPSortie)
{
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wswitch"
switch (etatsImprimanteCasChangementCartouche)
{
case EtatCCSortie:
break;
}
#pragma GCC diagnostic pop
}
}
使用:
#pragma GCC diagnostic ignored "-W<replace_this_with_the_warning>"
我有一个特定的警告,我想删除/隐藏然后在之后启用它。你知道我怎样才能在不删除所有其他警告的情况下做到这一点吗?
这是我收到的警告
warning: enumeration value 'EtatCCSortie' not handled in switch [-Wswitch]
而且我不需要在开关中实际使用该状态(它是一个状态机)。我有办法不再收到此警告,方法是像这样将状态添加到开关:
while (etatsImprimanteCasImpressionPeriodique != EtatIPSortie)
{
switch (etatsImprimanteCasChangementCartouche)
{
....
case EtatCCSortie:
break;
但我不必添加它,因为它永远不会执行 (while !=)。这就是为什么我正在寻找一种方法来禁用此特定警告,然后在此切换后立即启用它。
Ps:我知道警告的重要性,我只需要一种删除它的方法。
enum somenum {
EtatIPSortie,
EtatCCSortie,
};
int etatsImprimanteCasImpressionPeriodique;
enum somenum etatsImprimanteCasChangementCartouche;
void func() {
while (etatsImprimanteCasImpressionPeriodique != EtatIPSortie)
{
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wswitch"
switch (etatsImprimanteCasChangementCartouche)
{
case EtatCCSortie:
break;
}
#pragma GCC diagnostic pop
}
}
使用:
#pragma GCC diagnostic ignored "-W<replace_this_with_the_warning>"