相关疑难解决方法(0)

让编译器假设所有情况都在switch中处理而没有默认值

让我们从一些代码开始吧.这是我程序的极简化版本.

#include <stdint.h>

volatile uint16_t dummyColorRecepient;

void updateColor(const uint8_t iteration)
{
    uint16_t colorData;
    switch(iteration)
    {
    case 0:
        colorData = 123;
        break;
    case 1:
        colorData = 234;
        break;
    case 2:
        colorData = 345;
        break;
    }
    dummyColorRecepient = colorData;
}

// dummy main function
int main()
{
    uint8_t iteration = 0;
    while (true)
    {
        updateColor(iteration);
        if (++iteration == 3)
            iteration = 0;
    }
}
Run Code Online (Sandbox Code Playgroud)

该程序编译警告:

./test.cpp: In function ‘void updateColor(uint8_t)’:
./test.cpp:20:25: warning: ‘colorData’ may be used uninitialized in this function [-Wmaybe-uninitialized]
     dummyColorRecepient …
Run Code Online (Sandbox Code Playgroud)

c++ g++ switch-statement

6
推荐指数
2
解决办法
210
查看次数

标签 统计

c++ ×1

g++ ×1

switch-statement ×1